天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP 雜談《重構-改善既有代碼的設計》之三 重新組織數據

思維導圖


介紹

  承接上文的php 雜談《重構-改善既有代碼的設計》之 重新組織你的函數繼續重構方面的內容。 這章主要針對數據的重構。 1、爭論的聲音――直接訪問Field還是通過函數(Accessor)訪問Field

 2.修改Array為Object:當你看到一個Array很像一個數據結構,你可以使用Replace Array with Object,把Array變成一個對象。――數據結構更清晰。

   專業術語 

accessor:訪問者,存儲器――在本文翻譯為“函數”

dumb:啞

domain class:用以處理業務邏輯

presentation class:用以處理”數據表現形式“

business logic:業務邏輯

unidirectional:單向的

bidirectional:雙向的

collection:群集

 Self Encapsulate Field 狀況:如果Client直接訪問值域,會造成Client與值域之間的耦合關系逐漸變得笨拙,那么為這個值域建立取值/設置函數,并且只以這些函數來訪問。 

 

動機:

  “間接訪問變量”:支持更靈活的數據獲取方式,如lazy Initialization(意思是只有用到值時,才對它進行初始化。)

  “直接訪問變量”:代碼比較容易閱讀,不需要停下來說:“啊,這只是個取值函數”。

       選擇:1、代碼規范,按照團隊中大多數人的做法去做。

     2、個人比較喜歡“直接訪問變量”,直到這種方式帶來麻煩為止。

       martin(作者)的例子:你想獲取superclass中的field,卻又想在subclass中將該field改為計算后的值,這就最該使用Self Encapsulate Field。

                         我自己的例子:我一般會把field設置成private,如果外部變量,需要用到此field的時候,我就會用Self Encapsulate Field。或者field的值有變化的時候,用Self Encapsulate Field。


 Replace Data Value with Object  狀況:如果你的某個基本類型的field,需要額外的數據和行為,那么將此field變成對象。 

 

   動機: 

開發初期,我們也許會使用基本數據類型表示簡單的行為。例如:你可能會用一個字符串表示電話號碼,但是隨后可能會出現電話號碼的“格式化“,”驗證“,”抽取區號“之類的特殊行為。――這時候我們就需要一個新類。

  Replace Array with Object 狀況:你有一個數組,數組中的元素各自代表不同的東西,那么以對象替換數組,對于數組中的每個元素,以一個值域表示之。 

 動機:

數組常用于一組相似對象。如果數組中的元素不同,很難明白數組中的第一個元素是人名這樣的約定。對象就不同了,可以通過值域名稱和函數名稱傳達這樣的信息。――這樣無須死記,無須注釋。

 Encapsulate Field 狀況:如果你的class中有一個public值域,那么將它聲明為pirvate,并提供相應的訪問函數。

 動機:

面向對象的原則之一就是封裝(Encapsulate)或者稱為”數據隱藏“。按照此原測,你絕不應該把數據聲明為public。  ――public 數據被看成是一種不好的做法。  ――如果封裝了,代碼的修改就會比較簡單,因為都集中在一個地方。 一個函數除了訪問函數(getting/setting)外,不提供其他行為,它終究只是一個dumb class(啞類)。這類class不能獲得對象技術的優勢。――解決啞類的方法是Move Method輕快的將它們移到新對象去。  conclusion 我希望能把我理解的東西與大家分享,歡迎大家提出寶貴意見。

php技術PHP 雜談《重構-改善既有代碼的設計》之三 重新組織數據,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 男女AA片免费 | 午夜在线播放免费人成无 | 91嫩草视频在线观看 | 蜜芽最新域名解析网站 | 成人午夜精品久久久久久久秋霞 | 999精品在线 | 校园女教师之禁区 | 强奸美女老师 | 白丝女仆被啪到深夜漫画 | 小短文H啪纯肉公交车 | 国产亚洲精品品视频在线 | 巨胸美女狂喷奶水www网麻豆 | 手机伊在人线香蕉2 | 妈妈的朋友5在线观看免费完整版中文 | www.久久久 | sao虎影院桃红视频在线观看 | 国产人妻人伦精品9 | 大地影院日本韩国电影免费观看 | 久久热r在线视频精品 | yellow视频免费观看高清在线 | 无码国产成人777爽死在线观看 | 涩涩伊人久久无码欧美 | 最新果冻传媒在线观看免费版 | 国内精品乱码卡一卡2卡三卡新区 | 2224x最新网站 | 熟女人妻-蜜臀AV-首页 | 亚洲国产中文字幕在线视频 | 又粗又大又爽又黄的免费视频 | 麻豆一区二区免费播放网站 | 国产香蕉九九久久精品免费 | 又爽又黄又粗又大免费视频 | 成人在无码AV在线观看一 | 久久精品中文騷妇女内射 | nxgx69日本护士 | 一个人免费视频在线观看高清版 | 97午夜伦伦电影理论片 | 日韩欧美一区二区三区免费看 | 久久午夜夜伦鲁鲁片无码免费 | 中文字幕人成人乱码亚洲AV | 老师你奶真大下面水真多 | 忘忧草日本在线WWW日本 |