物件導向設計原則,以及包的設計原則

21ca發表於2009-03-25
首先來回憶一下OO的設計原則:
1. 單一責任原則(SRP)  一個類只有一個責任, 如果它需要被修改, 應該僅有一個原因.
     反模式: 一個類處理的事情太多了, 應當進行分解.
2. 開放-閉合原則(OCP)  對擴充套件開放, 對修改封閉. 也就是說可以修改一個模組(類或方法)的周邊環境而不用修改模組本身.
     反模式: 一個模組的修改將導致其他模組的修改.
3. 里氏替換原則(LSP)  子類可以代替基類, 客戶使用基類, 他們不需要知道派生類所做的事情.
     反模式: if(a instanceof TypeA) {...}
4. 依賴倒置原則(DIP)  依賴於抽象類或介面,而不要依賴於那些容易變化的具體類。
     從抽象類繼承  從抽象類引用  從抽象類呼叫方法。
5. 介面隔離原則(ISP)  客戶不應該依賴根本不用的方法. 為每一個客戶提供一個介面,這個介面只包含他們感興趣的方法。
     反模式:肥類(fat class), 有成堆的方法, 而且使用者很少使用。

接下來看包的設計原則:
1. 釋出/重用等價原則(REP) 我們建立包的目的是為了給別人重用,所以重用的粒度就是釋出的粒度。
2. 公共閉合原則(CCP)  因為相同原因而被修改的類應該放入一個包中,對應於“單一責任原則”。
3. 公共重用原則(CRP)  應該儘可能地將只被一個客戶使用的包與被多個不同客戶使用到的包分開。對應於“介面隔離原則”
4. 非迴圈依賴原則(ADP)  不要在包依賴圖中出現迴圈依賴。如a依賴於b, b依賴於c,同時c又依賴於a。
5. 穩定依賴原則(SDP)  要依賴於穩定的包,而不要依賴於經常變化的包。對應於“依賴倒置原則”。
6. 穩定抽象原則(SAP)  穩定的包應當是抽象的。對應於“依賴倒置原則”。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10742815/viewspace-578362/,如需轉載,請註明出處,否則將追究法律責任。

相關文章