从目的来看
创建型模式:
创建型模式的关注点是“怎样创建对象”,特点是“将对象的创建与使用分离”,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成
共五种:
单例(Singleton)模式
原型(Prototype)模式
工厂方法(FactoryMethod)模式
抽象工厂(AbstractFactory)模式的产品。
建造者(Builder)模式
结构型模式:
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
共七种:
代理(Proxy)模式
适配器(Adapter)模式
桥接(Bridge)模式
装饰(Decorator)模式
外观(Facade)模式
享元(Flyweight)模式
组合(Composite)模式
行为型模式:
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。
行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。
行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使代码更加地清晰。
共11种
模板方法(Template Method)模式
策略(Strategy)模式
命令(Command)模式
职责链(Chain of Responsibility)模式
状态(State)模式
观察者(Observer)模式
中介者(Mediator)模式
迭代器(Iterator)模式
访问者(Visitor)模式
备忘录(Memento)模式
解释器(Interpreter)模式
李建忠老师也对设计模式进行了一定程度的分类,如下所示:
组件协作类
单一职责类
对象创建类
对象性能类
接口隔离类
状态变化类
数据结构类
行为变化类
领域问题类