设计模式总结
创建型模式
工厂模式
定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。
包含:抽象工厂(Abstract Factory)、具体工厂(ConcreteFactory)、抽象产品(Product)、具体产品(ConcreteProduct)
结构型模式
适配器模式
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
包含:目标(Target)接口、适配者(Adaptee)类、适配器(Adapter)类
装饰器模式
指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。
包含:抽象构件(Component)、具体构件(Concrete Component)、抽象装饰(Decorator)、具体装饰(ConcreteDecorator)
行为型模式
策略模式
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
包含:抽象策略(Strategy)、具体策略(Concrete Strategy)、环境(Context)
模板(框架)模式
定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
包含:抽象类(Abstract Class)、具体子类
抽象类包含:模板方法、基本方法
访客模式
封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。
包含:抽象访问者(Visitor)、具体访问者(ConcreteVisitor)、抽象元素(Element)、具体元素(ConcreteElement)、对象结构(Object Structure)
迭代器模式
提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。
包含:抽象聚合(Aggregate)、具体聚合(ConcreteAggregate)、抽象迭代器(Iterator)、具体迭代器(Concretelterator)