一、設計模式概念與意義 設計模式是一套代碼設計經驗的總結,為的是代碼重用,提高代碼可讀性。每種模式在現實中都能找到相對應的原理,符合面向對象的原則,把現實中的事物抽象成虛擬世界的對象。 同時,在開發大型軟體時,很多時候需要一個框架,將軟體分成一個個功能模塊,以便多人的分工合作,因此框架設計中經常要使
一、設計模式概念與意義
設計模式是一套代碼設計經驗的總結,為的是代碼重用,提高代碼可讀性。每種模式在現實中都能找到相對應的原理,符合面向對象的原則,把現實中的事物抽象成虛擬世界的對象。
同時,在開發大型軟體時,很多時候需要一個框架,將軟體分成一個個功能模塊,以便多人的分工合作,因此框架設計中經常要使用設計模式。所以,學習設計模式有助於對框架結構的理解,以對整個代碼結構有清晰的認識,縮短軟體開發周期。
二、設計原則
1.單一職責原則(Single Responsibility Principle)
一個類應該只有一個引起它變化的原因。
2.開閉原則(Open Close Principle)
對擴展開放,對修改關閉。把抽象介面與實現相分離。
3.里氏轉換原則(Liskov Substitution Principle)
任何基類可以出現的地方,子類一定可以出現。對OCP的補充,OCP的關鍵是抽象化,而基類與子類的繼承關係就是抽象化的具體實現。
4.依賴倒轉原則(Dependence Inversion Principle)
OCP的基礎,針對介面編程,依賴於抽象而不依賴於具體。
5.介面隔離原則(Interface Segregation Principle)
使用多個專門的介面比使用單一的總介面要好。
6.迪米特法則(Demeter Principle)
一個對象應當對其它對象儘可能少地發生相互作用,使系統功能相對獨立。
7.合成/聚合復用原則(Composite/Aggregate Reuse Principle)
儘量使用合成/聚合,而不是使用繼承。
三、設計模式的類型
三類設計模式:
創建型模式:提供在創建對象時隱藏邏輯的方法,不使用new 運算符直接實例化對象。
1.工廠模式(Factory Pattern)
2.抽象工廠模式(Abstract Factory Pattern)
3.單例模式(Singleton Pattern)
4.建造者模式(Builder Pattern)
5.原型模式(Prototype Pattern)
結構型模式:關註類和對象的組合。繼承概念用來組合介面和定義組合對象獲得新功能。
1.適配器模式(Adapter Pattern)
2.橋接模式(Bridge Pattern)
3.過濾器模式(Filter Criteria Pattern)
4.組合模式(Composite Pattern)
5.裝飾器模式(Decorator Pattern)
6.外觀模式(Facade Pattern)
7.享元模式(Flyweight Pattern)
8.代理模式(Proxy Pattern)
行為型模式:關註對象之間的通信
1.責任鏈模式(Chain of Responsibility Pattern)
2.命令模式(Command Pattern)
3.解釋器模式(Interpreter Pattern)
4.迭代器模式(Iterator Pattern)
5.中介者模式(Mediator Pattern)
6.備忘錄模式(Memento Pattern)
7.觀察者模式(Observer Pattern)
8.狀態模式(State Pattern)
9.空對象模式(Null Object Pattern)
10.策略模式(Strategy Pattern)
11.模版模式(Template Pattern)
12.訪問者模式(Visitor Pattern)