1.定义:定义一个封装一组对象如何交互的对象; 通过使对象明确地相互引用来促进松散耦合,并允许独立地改变 2.类型:行为型 3.适用场景:系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解; 交互的公共行为,如果需要改变行为则可以增加新的中介者类4.优点:将一对多转化成对了一对一 ...
分类:
其他好文 时间:
2019-01-07 01:38:23
阅读次数:
161
1.定义:为请求创建一个接收此次请求对象的链 2.类型:行为型 3.适用场景:一个请求的处理需要多个对象当中的一个或几个协作处理。 4.优点:请求的发送者和接收者(请求的处理)解耦;责任链可以动态组合。 5.缺点:责任链太长或者处理时间过长,影响性能;责任链有可能过多。 6.相关设计模式:状态模式。 ...
分类:
其他好文 时间:
2019-01-07 01:32:04
阅读次数:
219
1.定义:允许一个对象在其内部状态改变时,改变它的行为。 2.类型:行为型 3.适用场景:一个对象存在多个状态(不同状态下行为不同),且状态可相互转换。 4.优点:将不同的状态隔离,把各种状态的转换逻辑,分布到State的子类中,减少相互间依赖; 增加新的状态非常简单。 5.缺点:状态多的业务场景导 ...
分类:
其他好文 时间:
2019-01-07 01:31:28
阅读次数:
224
1.定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现; 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。 2.类型:行为型 3.适用场景:一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现; 各子类中公共的行为被提取出来并集中到一个公共父类中,从而避免代 ...
分类:
其他好文 时间:
2019-01-06 18:26:50
阅读次数:
192
1.定义:将抽象部分与它的具体实现部分分离,使它们都可以独立地变化; 通过组合的方式建立两个类之间联系,而不是继承。 2.类型:结构型 3.适用场景:抽象和具体实现之间增加更多的灵活性; 一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展; 不希望使用继承,或因为多层继 ...
分类:
其他好文 时间:
2019-01-06 18:22:20
阅读次数:
186
1.定义:为其他对象提供一种代理,以控制对这个对象的访问; 代理对象在客户端和目标对象之间起到中介的作用。 2.类型:结构型 3.适用场景:保护目标对象;增强目标对象。 4.优点:代理模式能将代理对象与真实被调用的目标对象分离; 一定程度上降低了系统的耦合度,扩展性好; 保护目标对象;增强目标对象。 ...
分类:
其他好文 时间:
2019-01-06 18:16:44
阅读次数:
158
1.定义:提供了减少对象数量从而改善应用所需的对象结构的方式; 运用共享技术有效地支持大量细粒度的对象。 2.类型:结构型 3.适用场景:常常应用于底层的开发,以便解决系统的性能问题; 系统有大量相似对象、需要缓冲池的场景。 4.优点:减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率; ...
分类:
其他好文 时间:
2019-01-06 18:02:50
阅读次数:
203
1.定义:将一个类的接口转换成客户期望的另一个接口;使原本接口不兼容的类可以一起工作。 2.类型:结构型 3.适用场景:已经存在的类,它的方法和需求不匹配时(方法结果相同或相似); 不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、 不同厂家造成功能类似而接口不相同情况下的解决方案。 4 ...
分类:
其他好文 时间:
2019-01-06 18:02:32
阅读次数:
183
1.定义:又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口; 外观模式定义了一个高层接口,让子系统更容易使用。 2.类型:结构型 3.适用场景:子系统越来越复杂,增加外观模式提供简单调用接口; 构建多层系统结构,利用外观对象作为每层的入口,简化层间调用。 4.优点:简化了调用过程,无需 ...
分类:
其他好文 时间:
2019-01-06 16:41:01
阅读次数:
210
1.定义:在不改变原有对象的基础之上,将功能附加到对象上; 提供了比继承更有弹性的替代方案(扩展原有对象功能)。 2.类型:结构型 3.适用场景:扩展一个类的功能或给一个类添加附加职责; 动态的给一个对象添加功能,这些功能可以再动态的撤销。 4.优点:继承的有力补充,比继承灵活,不改变原有对象的情况 ...
分类:
其他好文 时间:
2019-01-06 16:34:38
阅读次数:
190