一.合理封裝
面向?qū)ο笤O(shè)計(ood)之黃金準則——找出變化點蹄衷,封裝它
當年設(shè)計一個類時候正歼,從一開始就用封裝的思想來設(shè)計它
設(shè)計類時赠尾,不僅隱藏數(shù)據(jù)力穗,同時也要隱藏底層數(shù)據(jù)存儲方式、算法等具體實現(xiàn)細節(jié)
<一個封裝良好的類气嫁,不用看文檔就會用当窗,也不易被誤用>。
“封裝”是一種重構(gòu)方法
當對老代碼進行維護時,對需要這些代碼進行必要的抽象與封裝寸宵,以提升其可擴展性超全,更易于重用,這是一種重要的系統(tǒng)重構(gòu)方式
具體實現(xiàn)手段:
從現(xiàn)有的類中抽取出接口(或者抽象基類)邓馒,推動系統(tǒng)架構(gòu)進行演化嘶朱。。光酣。
二.基于職責(zé)設(shè)計類
每個類的職責(zé)必須要明確
每個類只承擔(dān)一項職責(zé)
Expert/Information Expert原則
某項功能需要某些必要的信息疏遏,這些信息再哪個類中,就讓這個類承擔(dān)這些職責(zé)救军。(如果這個類要實現(xiàn)某個功能财异,而這個功能的這些信息一定要歸屬于這個類,即處理信息和信息本身要放到一個類中)
Creator原則
這一原則要求設(shè)計者想清楚一件事:
誰負責(zé)創(chuàng)建對象唱遭?
Controller原則
考慮:誰負責(zé)顯示數(shù)據(jù)戳寸?誰負責(zé)相應(yīng)事件?誰負責(zé)處理數(shù)據(jù)拷泽?..
例如非常著名的:MVC
High Cohesion/Low Coupling?
Coupling(耦合性):用于衡量對象之間依賴性的強弱
Cohesion(內(nèi)聚性):用于衡量某個類所提供的外部功能及內(nèi)部代碼之間關(guān)聯(lián)的緊密程度
在設(shè)計一個類的時候疫鹊,追求“低耦合袖瞻,高內(nèi)聚”
有效方法:
1.組合優(yōu)先與繼承
Indirection(間接性)原則
對象之間相互關(guān)聯(lián),形成了復(fù)雜的交互網(wǎng)絡(luò)
為了減少耦合拆吆,創(chuàng)建一個中間對象聋迎,將多對多關(guān)聯(lián)拆散為一對多關(guān)聯(lián)
Pure Fabrication 原則
當某些功能不適合與歸屬到特定的業(yè)務(wù)邏輯相關(guān)的類時,創(chuàng)建一個新的類枣耀,這種機制被成為“Pure Fabrication“霉晕,就是”生造出來的類“。
Protected Variations原則
這一原則可譯為”隔離變化“原則捞奕,簡單說:在設(shè)計類時牺堰,應(yīng)該盡量讓其少受外界的影響
Polymorphism(多態(tài)性)原則
利用多態(tài)性,把變化封裝到子類中