設計原則 設計模式

Thurs發表於2020-08-24
S 單一職責原則

一個類應該只負責一項職責。如果一個類有多個職責,這些職責就耦合在了一起。當一個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起會影響複用性。
此原則的核心是解耦和增強內聚性。

O 開閉原則

對擴充套件開放,對修改關閉。

L 里氏替換原則

子類可以擴充套件父類的功能,但不能改變父類原有的功能。

I 介面隔離原則

使用多個隔離的介面,比使用單個介面要好。降低依賴,降低耦合。客戶端不應該被強制去實現於它不需要的介面

D 依賴倒轉原則

針對介面程式設計,依賴於抽象而不依賴於具體。

迪米特法則

又稱最少知道原則: 一個實體應當儘量少地與其他實體之間發生相互作用,使得系統功能模組相對獨立。

創造性模式

工廠模式: 主要解決介面選擇的問題,建立過程延遲到子類進行
抽象工廠模式: 建立一個相關物件的工廠,每個工廠按照工廠模式提供物件
單例模式: 避免一個全域性使用的類頻繁的建立與銷燬
構造者模式: 使用多個簡單的物件一步步構造成一個複雜的物件
原型模式:建立重複的物件

結構性模式

介面卡模式: 介面卡繼承或依賴已有的物件,實現想要的介面
裝飾器模式: 在不想增加很多子類的情況下擴充套件類,動態的給一個物件新增額外的職責
代理模式: 位其他物件提供一種代理以控制對這個物件的訪問
外觀模式: 向現有的系統新增一個介面,來隱藏系統的複雜性
橋接模式: 將抽象部分與實現部分分離,使他們都可以獨立的變化
組合模式: 樹枝和葉子實現統一介面,樹枝內部組合該介面
享元模式: 減少建立物件的數量,以減少記憶體佔用和提高效能。例如:UITableViewCell

行為型模式

策略模式: 定義一系列的演算法,把他們一個個封裝起來,並且使他們可互相替換
模板模式: 有一些通用的方法,但是在每一個子類都重寫此方法。例如:YTKNetWorking
觀察者模式: 解決一個物件改變狀態給其他物件通知的問題
迭代器模式: 提供一種方法順序訪問一個聚合物件中各個元素,而又無須暴露該物件的內部表示
責任鏈模式: 無須關心處理細節和請求傳遞,只需將請求傳送到責任鏈上即可
命令模式: 將一個請求封裝成一個物件,從而用不同的請求對客戶進行引數化
備忘錄模式: 儲存一個物件的某個狀態,以便在適當的時間恢復物件
狀態模式: 物件的行為依賴於他的狀態(屬性),並且可以根據她的變化改變而改變他的相關行為
訪問者模式: 在被訪問的類裡面加一個對外提供訪問者的介面來進行判斷
中介者模式: 多個類相互耦合,將類解耦
直譯器模式: 實現一個表示式介面,解釋一個特定的上下文

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Thurs

相關文章