首先这里先讲下复合模式的定义,复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。具体场景和例子这里就不介绍了。
好了,现在让我们看下什么是模式。
模式:是在某情境下,针对某问题的某种解决方案。
情境就是应用某个模式的情况下,这应该是会不断出现的情况。
问题就是你想在某情境下达到的目标,但也可以是某情境下的约束
解决方案就是你所追求的,一个通用的设计,用了解决约束、达到目标。
根据模式的目标可以将模式分成三个不同类目:创建型、行为型以及结构型
创建型模式:涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
行为型模式:涉及到类与对象如何交换及分配职责。
结构型:可以让你把类或对象组合到更大的结构中
下面我们主要区分几个设计模式所属的类目。
创建型:Abstract Factory、Factory Method、Singleton、
结构型:Decorator、Composite、Proxy、Facade、Adapter
行为型:State、Iterator、Observer、Strategy、Command、Template
接着,让我们在总结下之前介绍的各个设计模式吧。
装饰者:包装一个对象,以提供新的行为。
状态 :封装了基于状态的行为,并使用委托在行为之间切换。
迭代器:在对象的集合之中游走,而不暴露集合的实现。
外观 :简化一群类的接口。
策略 :封装可互换的行为,并使用委托来决定使用哪一个。
代理 :包装对象,以控制对此对象的访问。
工厂方法:由子类决定要创建的具体类是哪一个
适配器:封装对象,并提供不同的接口。
观察者:让对象能够在状态改变时被通知。
模板方法:由子类决定如何实现一个算法的步骤。
组合 :客户用一致的方式处理对象集合和单个对象。
单例 :确保有且只有一个对象呗创建。
抽象工厂:允许客户创建对象的家族,而无需指定具体的类。
命令 :封装请求成为对象。
PS:说明下此系列未涉及的其他设计模式有:桥接、生成器、责任链、蝇量、解释器、中介者、备忘录、原型、访问者。有兴趣的可以去参考博客http://www.cnblogs.com/zuoxiaolong/category/509144.html的介绍。
End by 设计模式