总体来说设计模式分为三大类:创建型设计模式抽象了对象的实例化过程;结构型设计模式涉及到如何组合类和对象以获得更大的结构;行为型设计模式描述算法和对象间职责的分配。
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。创建型模式通过以某种方式控制对象的创建来解决问题。创建型模式又分为对象创建型模式和类创建型模式。创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。
结构型模式主要用于描述如何组合类和对象以获得更大的结构。其中,结构型类模式采用继承机制来组合接口和实现,而结构型对象模式则采用组合/聚合方式来组合对象以实现新功能,因为它可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性,这种机制是无法通过静态类组合来实现的。
行为型模式是设计到算法和对象间的职责分配,不仅描述对象或类的模式,还描述他们之间的通信方式,客服了运行时难以跟踪的复杂的控制流,他们将你的注意力重控制流转移到对象间的关系上来。行为类模式采用继承机制在类间分派行为,例:模板方法模式、解释器模式;行为对象模式描述了一组相互对等的对象如何相互协作以完成其中任何一个对象都单独无法完成的任务,例:中介者模式、职责链模式、策略模式;其它的行为对象模式常将行为封装在一个对象中,并将请求指派给它。