设计模式特点对比分析

如下对设计模式的特点进行一下整理,方便记忆,防止对模式间的共性部分区分不清。
一。创建行模型
**1。工厂方法:**一个多态的函数,创建一个对象(一个方法:创建一个对象)
**抽象工厂:**一个多态的函数,创建一系列的对象(一堆方法:创建一组对象)
**创建者模式呢:**一个多态的函数,传入一个已经new了的对象,按照1~N的顺序对对象进行再加工。
**单件模式:**特点很明显,就是保证只有一个实例。
**原型模型:**特点也很明显,就是一个类能拷贝自己。
二。结构型
**1.适配器模式:**就是解决接口不同的问题,简单来说,是解决接口名称不同的问题。
可以简单这样理解,但如果你理解的更深入了,你自然就明白这句话的局限性了。
**2.桥接模型:**这个实际就是俩个对象组合起来,完成两个维度的机能变化。
最明显的就是二维表或者多维表的需求。
对应组合聚合的设计原则。
两个维度的多态组合出丰富多彩的机能。
**3.装饰器模式:**这个和桥接模式的设计原则刚好相反,是用继承的方式来丰富机能。
特点就是自己和自己的父类是桥接关系,每一次继续就相当于一次机能的组合,无限制的继承,不受维度的限制。
这个模式的多态函数,在不断用继承丰富自己,同时继承父亲已经丰富的内容。
**4.组合模式:**这是一个很有特点的模式,不需要和其他模式做应用对比分析。
对象按照组合对象定义接口,简单对象可以不实装。
在调用该对象是,不用关心用的是组合对象还是简单对象。
**5.外观模式:**这个模式没啥说的,特点明显,只和行为类型模式的中介者有点想,差别在于,该模式的作用是用完模块外部,中介者模式用于模块内部。
该模式的作用的价值在于对模块机能的封装。
中介者模式的作用是减少内部模式的调用关系。
**6.享元模式:**该模式和但实例模式有点像,差别在于该模式是为了性能,而单实例不是为了性能,而是为了保证作用对象的一直。
单实例模式用在无论了解多少次数据库,保证都连接的一个数据库对象。
该模式用在大量字符处理时,把共性提前不来,相同字符共享共性的东西,节约空间开销。
**7.代理模式:**就是一个中间层的思想,和外观,中介者,都有点相似。
只不过这里更强调,是两个模块之间的中间层,这和中介者有点像,但这往往处在更大的一个级别的中间层,其实这也有外观的味道,但是他的偏向性没有外观明显,不特别偏向于两个关联层的那一层。
和中介者模式比这的基本更大:
和外观模式比:他比外观所属的模块距离更远

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/88413351