PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之三 重新組織數(shù)據(jù)

介紹


accessor:訪問者,存儲(chǔ)器——在本文翻譯為“函數(shù)”
dumb:啞
domain class:用以處理業(yè)務(wù)邏輯
presentation class:用以處理”數(shù)據(jù)表現(xiàn)形式“
business logic:業(yè)務(wù)邏輯
unidirectional:?jiǎn)蜗虻?/P>
bidirectional:雙向的
collection:群集



動(dòng)機(jī):

“間接訪問變量”:支持更靈活的數(shù)據(jù)獲取方式,如lazy Initialization(意思是只有用到值時(shí),才對(duì)它進(jìn)行初始化。)
“直接訪問變量”:代碼比較容易閱讀,不需要停下來說:“啊,這只是個(gè)取值函數(shù)”。
選擇:1、代碼規(guī)范,按照?qǐng)F(tuán)隊(duì)中大多數(shù)人的做法去做。
2、個(gè)人比較喜歡“直接訪問變量”,直到這種方式帶來麻煩為止。
martin(作者)的例子:你想獲取superclass中的field,卻又想在subclass中將該field改為計(jì)算后的值,這就最該使用Self Encapsulate Field。
我自己的例子:我一般會(huì)把field設(shè)置成private,如果外部變量,需要用到此field的時(shí)候,我就會(huì)用Self Encapsulate Field?;蛘遞ield的值有變化的時(shí)候,用Self Encapsulate Field。




開發(fā)初期,我們也許會(huì)使用基本數(shù)據(jù)類型表示簡(jiǎn)單的行為。例如:你可能會(huì)用一個(gè)字符串表示電話號(hào)碼,但是隨后可能會(huì)出現(xiàn)電話號(hào)碼的“格式化“,”驗(yàn)證“,”抽取區(qū)號(hào)“之類的特殊行為。——這時(shí)候我們就需要一個(gè)新類。



動(dòng)機(jī):

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



動(dòng)機(jī):

- 五款PHP代碼重構(gòu)工具推薦
- PHP代碼維護(hù),重構(gòu)變困難的4種原因分析
- PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之五 簡(jiǎn)化函數(shù)調(diào)用
- PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之四 簡(jiǎn)化條件表達(dá)式
- PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之二 對(duì)象之間搬移特性
- PHP 雜談《重構(gòu)-改善既有代碼的設(shè)計(jì)》之一 重新組織你的函數(shù)
- rephactor 優(yōu)秀的PHP的重構(gòu)工具
- PHP代碼重構(gòu)方法漫談
相關(guān)文章
PHP實(shí)現(xiàn)簡(jiǎn)單實(shí)用的分頁類代碼
這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單實(shí)用的分頁類代碼,結(jié)合實(shí)例形式分析了PHP分頁類的定義與使用技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-04-04
PHP連接MSSQL時(shí)nvarchar字段長(zhǎng)度被截?cái)酁?55的解決方法
這篇文章主要介紹了PHP連接MSSQL時(shí)nvarchar字段長(zhǎng)度被截?cái)酁?55的解決方法,可通過CAST數(shù)據(jù)類型轉(zhuǎn)換來解決,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12
解析PHP中empty is_null和isset的測(cè)試
本篇文章是對(duì)PHP中empty is_null和isse的測(cè)試進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php使用GD實(shí)現(xiàn)顏色漸變實(shí)例
這篇文章主要介紹了php使用GD實(shí)現(xiàn)顏色漸變的方法,實(shí)例分析了php中GD庫(kù)的使用技巧,需要的朋友可以參考下2015-06-06
php中實(shí)現(xiàn)xml與mysql數(shù)據(jù)相互轉(zhuǎn)換的方法
這篇文章主要介紹了php中實(shí)現(xiàn)xml與mysql數(shù)據(jù)相互轉(zhuǎn)換的方法,實(shí)例封裝了一個(gè)類文件,可實(shí)現(xiàn)XML與MySQL數(shù)據(jù)的相互轉(zhuǎn)換,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容的方法,涉及php文件與目錄的遍歷、查找以及字符串與數(shù)組的遍歷與替換操作相關(guān)技巧,適用于utf-8編碼環(huán)境,需要的朋友可以參考下2016-07-07
PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
這篇文章主要介紹了PHP move_uploaded_file() 函數(shù),其實(shí)就是將上傳的文件移動(dòng)到新位置,需要的朋友可以參考下2018-03-03
php設(shè)計(jì)模式 Prototype (原型模式)代碼
用原型實(shí)例指定創(chuàng)建對(duì)象的種類.并且通過拷貝這個(gè)原型來創(chuàng)建新的對(duì)象2011-06-06

