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)文章
微信公眾平臺(tái)開發(fā)教程①獲取用戶Openid及個(gè)人信息圖文詳解
這篇文章主要介紹了微信公眾平臺(tái)開發(fā)獲取用戶Openid及個(gè)人信息,結(jié)合圖文形式詳細(xì)分析了微信公眾平臺(tái)獲取用戶Openid及個(gè)人信息的步驟、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04PHP實(shí)現(xiàn)一維數(shù)組轉(zhuǎn)二維數(shù)組的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)一維數(shù)組轉(zhuǎn)二維數(shù)組的方法,實(shí)例分析了php操作數(shù)組的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02并發(fā)下常見的加鎖及鎖的PHP具體實(shí)現(xiàn)代碼
用到了Eaccelerator的內(nèi)存鎖 和 文件鎖,原理如下判斷系統(tǒng)中是否安了EAccelerator 如果有則使用內(nèi)存鎖,如果不存在,則進(jìn)行文件鎖2010-10-10收集的二十一個(gè)實(shí)用便利的PHP函數(shù)代碼
這里整理的二十一個(gè)實(shí)用便利的PHP函數(shù)代碼比較適合php開發(fā)過程中的直接使用與學(xué)習(xí)參考,對(duì)每種類型的 PHP 開發(fā)者都會(huì)有所幫助。2010-04-04PHP使用Curl實(shí)現(xiàn)模擬登錄及抓取數(shù)據(jù)功能示例
這篇文章主要介紹了PHP使用Curl實(shí)現(xiàn)模擬登錄及抓取數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了php使用curl進(jìn)行登陸、驗(yàn)證、cookie操作與數(shù)據(jù)抓取等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04