設計模式
什麼是設計模式?
設計模式就是一套反覆被使用的、為多數人知曉的、經過分類編目的、代碼設計經驗的總結。也就是在開發過程中約定俗成的代碼設計的規範和模板。
根據設計模式的參考書 Design Patterns - Elements of Reusable Object-Oriented Software(設計模式 - 可複用的面向對象軟件元素) 中所提到的,總共有 23 種設計模式。分為三大類:創建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行為型模式(Behavioral Patterns)。
創建型模式:這個類型的設計模式 在創建對象的同時隱藏創建邏輯的方式,而不是直接通過new去實例化對象。這樣程序在判斷針對某個給定實例需要創建哪些對象時更加靈活。主要包括下面五種具體的設計模式:工廠模式(Factory Pattern)、抽象工廠模式(Abstract Factory Pattern)、單例模式(Singleton Pattern)、建造者模式(Builder Pattern)和原型模式(Prototype Pattern)。結構型模式:這類設計模式關注類和對象的組合。主要包括下面七種具體的設計模式:適配器模式(Adapter Pattern)、橋接模式(Bridge Pattern)、組合模式(Composite Pattern)、裝飾器模式(Decorator Pattern)、外觀模式(Facade Pattern)、享元模式(Flyweight Pattern)和代理模式(Proxy Pattern)行為型模式:這類設計模式關注對象之間的通信。主要包括下面十一種具體的設計模式:責任鏈模式(Chain of Responsibility Pattern)、命令模式(Command Pattern)、解釋器模式(Interpreter Pattern)、迭代器模式(Iterator Pattern)、中介者模式(Mediator Pattern)、備忘錄模式(Memento Pattern)、觀察者模式(Observer Pattern)、狀態模式(State Pattern)、策略模式(Strategy Pattern)、模板模式(Template Pattern)和訪問者模式(Visitor Pattern)。六大原則
開閉原則(Open Close Principle): 對擴展開放,對修改關閉。實現熱插拔,提高擴展性。里氏代換原則(Liskov Substitution Principle): 實現抽象的規範,實現子父類互相替換;依賴倒轉原則(Dependence Inversion Principle): 針對接口編程,實現開閉原則的基礎;接口隔離原則(Interface Segregation Principle): 降低耦合度,接口單獨設計,互相隔離;迪米特法則,又稱最少知道原則(Demeter Principle): 功能模塊儘量獨立;合成複用原則(Composite Reuse Principle): 儘量使用合成/聚合的方式,而不是使用繼承。為什麼使用設計模式?