一、高內(nèi)聚低耦合
1理逊、耦合:耦合是指程序設(shè)計各模塊之間的依賴關(guān)系橡伞,包括控制關(guān)系、調(diào)用關(guān)系晋被、數(shù)據(jù)傳遞關(guān)系兑徘,依賴越緊密,耦合就越大羡洛,如果功能發(fā)生變化挂脑,要修改的模塊就不僅僅是當(dāng)前模塊,還可能牽扯到耦合的模塊欲侮,這樣維護成本就很高崭闲,所以我們在設(shè)計代碼的時候應(yīng)當(dāng)遵循低耦合的原則。影響耦合的因素也就是:
(1) 一個模塊對另一模塊的調(diào)用
(2) 一個模塊向另一個模塊傳遞的數(shù)據(jù)的多少
(3) 一個模塊對另一個模塊的控制的多少
(4) 模塊之間接口的復(fù)雜程度
2威蕉、耦合從低到高可以分為一下幾種類型:
(1)非直接耦合:兩模塊之間沒有直接關(guān)系刁俭,其模塊間的依賴完全是有主模塊的控制和調(diào)用來實現(xiàn)。
(2)數(shù)據(jù)耦合:一個模塊訪問另一個模塊韧涨,彼此之間通過簡單的數(shù)據(jù)參數(shù)來交換輸入牍戚、輸出信息侮繁,這里的簡單參數(shù)不同控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量如孝。
(3)標(biāo)記耦合:如果一組模塊通過參數(shù)表來傳遞記錄信息宪哩,就是標(biāo)記耦合,這一記錄是某一記錄的子結(jié)構(gòu)暑竟,不是簡單數(shù)據(jù)斋射。
(4)控制耦合:一個模塊通過傳遞快關(guān)、標(biāo)志但荤、名字等控制信息罗岖,明顯的控制選擇另一模塊的功能。
(5)外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu)腹躁,而且不是通過參數(shù)傳遞該全局變量信息
(6)公共耦合:一組模塊都訪問同一公共數(shù)據(jù)環(huán)境桑包,該數(shù)據(jù)環(huán)境可以是全局的數(shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)纺非、內(nèi)存的公共覆蓋區(qū)等哑了。
(7)內(nèi)容耦合:一個模塊直接修改另一模塊的數(shù)據(jù),或直接傳入另一模塊烧颖。
內(nèi)聚:內(nèi)聚是模塊的內(nèi)部各元素之間聯(lián)系的緊密程度
1弱左、內(nèi)聚度從低到高分為7種:
(1)偶然內(nèi)聚
(2)邏輯內(nèi)聚
(3)瞬時內(nèi)聚
(4)過程內(nèi)聚
(5)通信內(nèi)聚
(6)順序內(nèi)聚
(7)功能內(nèi)聚
二、設(shè)計模式六大原則:
1炕淮、單一職責(zé)原則(SRP):
定義:就一個類而言拆火,應(yīng)該僅有一個引起它變化的原因。
2涂圆、開閉原則(OCP):
定義:軟件中的對象(類们镜、模塊、函數(shù)等)應(yīng)該對于擴展是開放的润歉,對于修改是封閉的模狭。
3、里氏替換原則(LSP):
定義:所有引用基類的地方必須能透明使用其子類的對象踩衩。
4嚼鹉、依賴倒置原則:
定義:抽象不應(yīng)該依賴細節(jié),細節(jié)應(yīng)該依賴抽象驱富。
5锚赤、接口隔離原則(ISP):
定義:客戶端不應(yīng)該依賴它不需要的接口(類之間的依賴關(guān)系應(yīng)該建立在最小接口上,接口隔離原則將非常龐大臃腫的接口拆分為更小的和更具體的接口)
6萌朱、迪米特原則(LOD):
定義:也稱最少知識原則,一個對象應(yīng)該對其他對象有最少的了解
三策菜、設(shè)計模式總體歸為三大類:
1晶疼、創(chuàng)建型模式(5種):單例模式酒贬、建造者模式、工廠模式翠霍、抽象工廠模式锭吨、原型模式;
2寒匙、結(jié)構(gòu)型模式(7種):適配器模式零如、橋接模式、裝飾模式锄弱、組合模式考蕾、外觀模式、亨元模式会宪、代理模式肖卧;
3、行為型模式(11種):觀察著模式掸鹅、訪問者模式塞帐、中介者模式、策略模式巍沙、解釋器模式葵姥、命令模式、迭代器模式句携、備忘錄模式榔幸、責(zé)任鏈模式、模板模式务甥,狀態(tài)模式牡辽;