OOP 思想 和 設計原則 及24種設計模式
阿新 • • 發佈:2018-07-05
父類 分組 策略 結構 並且 實例 適配器模式 closed 不同的 oop思想:封裝、繼承、多態 把組件實現和接口分開,並且讓組件具有多態性
面向對象編程是一種解決軟件復用的設計和編程方法,這種方法把軟件中相近相似的操作邏輯和操作應用數據、狀態以類的形式描述出來,以對象實例的形式在軟件系統中復用,以達到提高軟件開發效率的作用。
封裝: 封裝可以使類具有獨立性和隔離性;保證類的高內聚。只暴露給類外部或子類必須的屬性和操作。
繼承:對現有類的一種復用機制。一個類如果繼承現有的類,則這個類將擁有被繼承類的所有菲斯有特性(屬性和操作)。這裏指的繼承包含:類的繼承和接口的實現。
多態:多態是在繼承的基礎上實現的。多態的三個要素:繼承、重寫和父類引用指向子類對象。父類引用指向不同的子類對象時,調用相同的方法,呈現出不同的行為;幾十類多態特性。多態可以分成編譯時多態和運行時多態。
oop 五大設計原則(SOLID原則) 外加 迪米特法則 和 組合優於繼承原則(合成復用原則):
一、單一職責原則
單一職責有2個含義,一個是避免相同的職責分散到不同的類中,另一個是避免一個類承擔太多職責。減少類的耦合度,提高類的復用性。
二、接口隔離原則
表明客戶端不應該被強迫實現一些他們不會使用的接口,應該把胖接口中的方法分組,然後用多個接口代替它,每個接口服務於一個子模塊。簡單說,就是使用多個專門的接口比使用單個接口好很多。
該原則觀點如下:
1、一個類對另外一個類的依賴性應當是建立在最小的接口上
2、客戶端程序不應該依賴它不需要的接口方法。
三、開放-封閉原則
open模塊的行為必須是開放的、支持擴展的,而不是僵化的。
closed在對模塊的功能進行擴展時,不應該影響或大規模影響已有的程序模塊。一句話概括:一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的。
核心思想就是對抽象編程,而不對具體編程。
四、替換原則
子類型必須能夠替換掉他們的父類型、並出現在父類能夠出現的任何地方。
主要針對繼承的設計原則
1、父類的方法都要在子類中實現或者重寫,並且派生類只實現其抽象類中生命的方法,而不應當給出多余的,方法定義或實現。
2、在客戶端程序中只應該使用父類對象而不應當直接使用子類對象,這樣可以實現運行期間綁定。
五、依賴倒置原則
上層模塊不應該依賴於下層模塊,他們共同依賴於一個抽象(父類不能依賴子類,他們都要一類抽象類)
抽象不能依賴於具體,具體應該要依賴於抽象
24種設計模式(gof23+1)
創建型模式:
1、簡單工廠模式(不包含在gof23中)
2、工廠模式
3、抽象工廠模式
4、單例模式
5、原型模式
6、創建者模式
結構型模式:
1、組合模式
2、裝飾者模式
3、外觀模式
4、適配器模式
5、代理模式
6、享元模式
7、橋接模式
行為型模式
1、觀察者模式
2、策略者模式
3、狀態模式
4、中介模式
5、模板方法
6、命令模式
7、備忘錄模式
8、訪問者模式
9、解釋器模式
10、叠代器模式
11、職責鏈模式
OOP 思想 和 設計原則 及24種設計模式