物件導向設計原則概述

Liuwei-Sunny發表於2012-05-04

      對於物件導向軟體系統的設計而言,在支援可維護性的同時,提高系統的可複用性是一個至關重要的問題,如何同時提高一個軟體系統的可維護性和可複用性是物件導向設計需要解決的核心問題之一。在物件導向設計中,可維護性的複用是以設計原則為基礎的。每一個原則都蘊含一些物件導向設計的思想,可以從不同的角度提升一個軟體結構的設計水平。

      物件導向設計原則為支援可維護性複用而誕生,這些原則蘊含在很多設計模式中,它們是從許多設計方案中總結出的指導性原則物件導向設計原則也是我們用於評價一個設計模式的使用效果的重要指標之一,在設計模式的學習中,大家經常會看到諸如“XXX模式符合XXX原則”、“XXX模式違反了XXX原則”這樣的語句。

       最常見的7種物件導向設計原則如下表所示:

1  7種常用的物件導向設計原則

設計原則名稱

  

使用頻率

單一職責原則

(Single Responsibility Principle, SRP)

一個類只負責一個功能領域中的相應職責

★★★★☆

開閉原則

(Open-Closed Principle, OCP)

軟體實體應對擴充套件開放,而對修改關閉

★★★★★

里氏代換原則

(Liskov Substitution Principle, LSP)

所有引用基類物件的地方能夠透明地使用其子類的物件

 

★★★★★

依賴倒轉原則

(Dependence  Inversion Principle, DIP)

抽象不應該依賴於細節,細節應該依賴於抽象

★★★★★

介面隔離原則

(Interface Segregation Principle, ISP)

使用多個專門的介面,而不使用單一的總介面

★★☆☆☆

合成複用原則

(Composite Reuse Principle, CRP)

儘量使用物件組合,而不是繼承來達到複用的目的

 

★★★★☆

迪米特法則

(Law of Demeter, LoD)

一個軟體實體應當儘可能少地與其他實體發生相互作用

★★★☆☆

【作者:劉偉  http://blog.csdn.net/lovelion

相關文章