http://my.oschina.net/rainingcn/blog/41458
一。创建者模式:
1.工厂模式注重的是整体对象的创建方法,而建造者模式注重的是部件构建的过程,旨在通过一步步的精确构造创建出一个复杂的对象。抽象工厂模式实现对产品家族的创建。
2.(抽象)工厂模式与创建者模式的不同:
2.1 意图不同: 工厂模式关注的是一个产品的整体,而建造者模式由一个个产品组成部分的创建过程。
2.2 产品的复杂度不同:工厂模式创建的一般都是单一产品,而建造者模式创建的是一个复杂的产品
3.原型模式:原型模式其实是从一个对象再创建另个一个可定制的对象,而且不需知道任何创建的细节。一般在初始化的信息不发生变化的情况下,克隆是最好的办法。
(4.模板模式:使用继承,将所有重复的代码都要上升到父类中。)
5.单例模式:创建一个实例
二。结构类模式:通过组合类或对象产生更大结构以适应更高层次的逻辑需求。
1. 代理模式与装饰模式很像。代理模式关注控制过程的访问,使用者关注的是原来的功能;而装饰模式关注的是在一个对象上动态的添加方法,使用者关注的是装饰之后的功能。
从行为上说,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。而使用装饰器模 式的时候,通常的做法是将原始对象作为一个参数传给装饰者的构造器。
2.装饰模式和适配器模式差别比较大,但它们的功能也有相似的地方:都是包装作用,都是通过委托方式实现其功能。不同点:装饰模式包装的是自己的兄弟类,率属于同一个家族(相同接口或者父类),适配器模式则修饰非血缘关系类,关注的是两个对象之间的转换。
3.共同点:桥接和适配器都是让两个东西配合工作
不同点:出发点不同。
适配器:改变已有的两个接口,让他们相容。
桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离
4.组合模式以类为主导,
装饰模式以对象为主导
组合模式弊端,组合的种类多种多样,为每种组合创造一个类,类的数量急剧的增加。
装饰模式弊端,会造成对象的嵌套层次太深
三。行为类模式:
1.命令模式与策略模式的区别:
类图相似,但是命令模式多了个接受者(Receiver)
1.1关注点不同:策略模式关注的是算法的替换问题,命令模式关注的是解耦问题:请求者、接受者之间的解耦,命令之间的解耦。
2.策略模式VS状态模式:
策略模式旨在解决内部算法如果改变问题,保证的是算法可自由切换;状态模式旨在解决内在状态的改变而引起行为改变的问题,它的出发点是事物的状态,封装状态而暴露行为。