物件導向設計原則&設計模式分類

玩轉架構發表於2020-01-13

設計模式六大原則

單一職責原則SRP(Single Responsibility Principle):一個類僅有一個引起它變化的原因。

開放-關閉原則OCP(Open-Closed Principle):一個類應該對擴充套件開放,對修改關閉。開閉原則是設計中非常核心的一個原則。

依賴倒置原則:要依賴於抽象,不要依賴於具體。要做到依賴倒置,典型的應該做到: 1:高層模組不應該依賴底層模組,二者都應該依賴於抽象。 2:抽象不應該依賴於具體實現,具體實現應該依賴於抽象。 很多人覺得,層次呼叫的時候,高層模組依賴‘底層模組的抽象介面’,其實這是一個典型的誤解。其實應該是高層模組影響底層模組的具體實現。因此這個底層的介面應該是高層實現的,然後由底層實現。也就是說底層的介面的所有權在高層模組,因此是一種所有權的倒置。

里氏替換原則:子類必須能替換掉它們的父型別。

介面隔離原則:不應該強迫客戶端去依賴他們不用的方法。有時候,有些介面非常的龐大,客戶端在使用這樣的介面的時候,通常會有很多他們不需要的方法,這對客戶端來說是一種介面汙染。相當於強迫使用者在一大堆‘垃圾方法’中去尋找他們需要的方法。分離介面的方式,除了直接進行程式碼分離之外,還可以進行委託來分離介面,在能夠進行多重繼承的語言中,還可以採用多重整合的方式來進行分離。

最少知識原則:只和你的朋友談話。儘量減少物件之間的互動,物件只和自己的朋友談話,也就是隻和自己的朋友互動,從而鬆散類之間的耦合。

其他原則:1:面向介面程式設計;2:優先使用組合,而非繼承。等等

設計模式分類:

建立型:抽象了物件例項化的過程,用來幫助建立物件的例項。GoF 中提供了單例、原型、工廠方法、抽象工廠、建造者等 5 種建立型模式。

結構型:描述如何組合類和物件已獲得更大的結構。GoF 中提供了代理、介面卡、橋接、裝飾、外觀、享元、組合等 7 種結構型模式。

行為型:描述演算法和物件間職責的分配。GoF 中提供了模板方法、策略、命令、職責鏈、狀態、觀察者、中介者、迭代器、訪問者、備忘錄、直譯器等 11 種行為型模式。

相關文章