首先这里先讲下复合模式的定义,复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的通常性问题。具体场景和例子这里就不介绍了。html
好了,如今让咱们看下什么是模式。算法
模式:是在某情境下,针对某问题的某种解决方案。设计模式
情境就是应用某个模式的状况下,这应该是会不断出现的状况。设计
问题就是你想在某情境下达到的目标,但也能够是某情境下的约束代理
解决方案就是你所追求的,一个通用的设计,用了解决约束、达到目标。server
根据模式的目标能够将模式分红三个不一样类目:建立型、行为型以及结构型htm
建立型模式:涉及到将对象实例化,这类模式都提供一个方法,将客户从所须要实例化的对象中解耦。对象
行为型模式:涉及到类与对象如何交换及分配职责。blog
结构型:能够让你把类或对象组合到更大的结构中接口
下面咱们主要区分几个设计模式所属的类目。
建立型: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 设计模式