设计模式速查版 - 开篇
虽说OO融汇贯通后,设计模式这种东西用起来就是‘心中有剑手中无剑’。可惜小弟还未达到这种水平,正好近期在准备面试的东西,就顺便整理了下,一来复习、二来方便以后查阅。
一、六大设计原则
1)开闭原则:一个软件实体应该对扩展开放对修改闭合。
2)里氏代换原则:任何能使用父类的地方一定能使用子类。
3)依赖倒转原则:要依赖于抽象不要依赖于实现。或者是抽象不应该依赖与细节,细节应该依赖于抽象。
4)合成聚合复用原则:尽量使用合成聚合而不是继承去实现复用。
5)迪米特法则:一个软件实体应该尽可能少的与其它实体发生相互作用。
6)接口隔离原则:应当为客户提供尽可能小的单独的接口而不应该提供大的综合性的接口。
二、分类
按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。
创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。
2.1创建型
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:
1)工厂方法模式(Factory Method Pattern)
2)抽象工厂模式(Abstract Factory Pattern)
3)建造者模式(Builder Pattern)
4)原型模式(Prototype Pattern)
5)单例模式(Singleton Pattern)
2.2结构型
结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:
1)适配器模式(Adapter Pattern)
2)桥接模式(Bridge Pattern)
3)组合模式(Composite Pattern)
4)装饰者模式(Decorator Pattern)
5)外观模式(Facade Pattern)
6)享元模式(Flyweight Pattern)
7)代理模式(Proxy Pattern)
2.3行为型
行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以下11种设计模式:
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)策略模式(Strategy Pattern)
10)模板方法模式(Template Method Pattern)
11)访问者模式(Visitor Pattern)
参考:《软件秘笈-设计模式那点事》