1. 程式人生 > >設計模式總綱

設計模式總綱

也會 個人理解 子類 活性 適應性 bsp 新的 原則 延遲

開閉原則:一個軟件實體應當對擴展開放,對修改關閉。

  就是說在不修改的前提下,僅依靠添加新代碼來改變這個模塊的行為。

  通過擴展已有的軟件系統提供新的行為滿足對新需求,使變化中的軟件系統有一定的適應性和靈活性。另外,重要的抽象層模塊不能修改,使得變化中的軟件系統具有一定的穩定性和延續性。

  個人理解就是軟件系統的取舍之道,在不失重心的前提下最大化的支持功能拓展。

裏氏替換原則:所有引用基類的地方必須能透明的使用其子類的對象。

  這個模式是為了更好的使用繼承。使用繼承也會增加模塊之間的耦合度甚至會引發不可知的異常,原因就是重寫或重載父類的方法導致父類方法不能正常調用導致。原則上繼承是為了讓子類延續父類的設計初衷並且選擇性的實現自己的功能,但是假如對於父類的設計意圖無法領會時建議不要貿然覆蓋父類的方法。

  覆蓋或實現父類的方法時輸入參數可以被放大,輸出結果可以被縮小。這就保證了重寫和重載的正確性,增強程序的健壯性。//個人認為遵循裏氏替換原則的設計才是真正的面向對象。

依賴倒轉原則:高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象;細節要依賴抽象。

  就是面向接口編程。//

接口隔離原則:類間的依賴關系應該建立在最小的接口上。

迪米特法則:只與最直接的朋友通信。

設計模式總綱:

  簡單工廠:提供一個創建對象實例的功能,而無需關心其具體實現。

  外觀模式:為子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

  適配器模式:將一個類的接口轉換成客戶希望的另一個接口,使得原本不兼容的那些類可以一起工作

  單例模式:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。

  工廠方法模式:定義一個用於創建對象的接口,讓子類決定實例化哪一個類,使一個類的實例化延遲到其子類。

  抽象工廠模式:提供一個創建一系相關或相互依賴對象的接口,而無需指定他們具體的類。

  生成器模式:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。

  原型模式:用原型實例指定創建對象的種類,並通過拷貝這些原型創建新的對象。

  中介者模式:用一個中介對象來封裝一系列的對象交互,使得對象不需要顯式地相互引用,從而使其耦合松散。而且可以獨立地改變他們之間的交互。

  代理模式:為其他對象提供一種代理以控制對這個對象的訪問。

  觀察者模式:定義對象間的一種一對多的依賴關系,當一個對象狀態發生變化時,所有依賴於它的對象都得到通知並被自動更新。

  命令模式:將一個請求封裝為一個對象,從而使你可以用不同的請求對客戶端進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作。

  叠代器模式:提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示。

  

設計模式總綱