深入淺出設計模式之概論

本章爲概述。後續章節將針對每一種設計模式給出對應的應用場景和代碼示例。

知名軟件大師Robert C.Martin認爲一個可維護性較低的軟件設計,通常是由於如下四個原因造成:
過於僵硬(Rigidity),過於脆弱(Fragility),可用率低(Immobility),黏度過高(Viscosity)。

注重軟件的可維護性和可複用性,纔是面向對象的入門,纔是設計模式的入門。

軟件設計有三個要素:流程、功能和數據結構。
功能方法考慮性能,流程方法考慮設計模式。
設計模式針對是流程,流程複雜化、不容易理解和控制。重構就是改的簡單容易理解一點,那怎麼簡單起來呢,應用設計模式。一開始的時候,除非你很有經驗,不然的話,不用考慮設計模式的問題。當你開始撓頭的時候,怎麼這麼亂,都不想寫了,這個時候開始重構,引入設計模式。

推薦兩本書《設計模式:可複用面向對象軟件的基礎》《程序員修煉之道》

一、面向對象的七個基本原則

1. 單一職責原則

類的職責要單一,不能將太多的職責放在一個類中。

2. 開閉原則

軟件實體對擴展是開放的,但對修改是關閉的,即在不修改一個軟件實體的基礎上去擴展功能。

3. 里氏代換原則

在軟件系統中,一個可以接受基類對象的地方必然可以接受一個子類對象。

4. 依賴倒轉原則

要針對抽象層編程,而不要針對具體類編程。

5. 接口隔離原則

使用多個專門的接口來取代一個統一的接口。

6. 合成複用原則

在系統中應該儘量多使用組合和聚合關聯關係,儘量少使用甚至不使用繼承關係、

7. 迪米特法則

一個軟件實體對其他實體的引用越少越好,或者說如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相互作用,而是通過引入一個第三者發生間接交互。

二、設計模式

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章