2016年到了,從2014年到今天,已經工作1年半了,回想自己這一年半的工作發現除了剛工作的時候進步很大,現在幾乎沒有怎麼進步,一直在停滯不前。
2016年的1月份給自己定的目標就是理解23種設計模式。
現在我想將設計模式寫成博客,以鞏固自己的學習
一、分類
創建型模式(5種):
用來創建對象以便能實現系統解耦。包括:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式(7種):
用不同的對象組成大規模的對象結構。包括:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行爲模式(11種):
用來在對象種管理算法、關係和責任。包括:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
二、原則
1開閉原則(Open Close Principle)
開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有代碼,實現一個熱插拔效果。爲了使程序的擴展性好,易於維護和升級,我們需要使用接口和抽象類。
2里氏代換原則
里氏代換原則是面向對象設計的基本原則之一。里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。是繼承複用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行爲。里氏代換原則是對“開閉原則”的補充說明。實現“開閉原則”的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以里氏代換原則是對抽象化的具體步驟的規範。
3依賴倒轉原則
這個是開閉原則的基礎,針對接口編程,依賴於抽象而不依賴於具體
4接口隔離原則
使用多個隔離接口比使用單個接口更好。可以降低類之間的耦合度。
5最少知道原則(迪米特法則)
一個實體類應當儘量少的與其他實體類之間發生互相作用,使系統的功能模塊相互對立。
6合成複用原則
儘量使用合成/聚合的方式,而不使用繼承