一、定义 定义:将对象组合成树形结构以表示“部分-整体” 组合模式使客户端对单个对象和组合对象保持一致的处理 类型:结构型 二、适用场景 希望客户端可以忽略组合对象与单个对象的差异时 处理一个树形结构时 三、优点 清楚地定义分层次的复杂对象,表示对象的全部或者部分层次 让客户端忽略了层次的差异,方便 ...
分类:
其他好文 时间:
2018-10-07 23:21:58
阅读次数:
163
一、定义 定义:在不改变原有对象的基础上,将功能附加到对象上 提供了比继承更有弹性的替代方案(扩展原有对象功能) 类型: 结构型 二、使用场景 扩展一个类的功能或者给一个类添加附件职责 动态给一个对象添加功能,这些功能可以再动态的撤销 三、优点 继承的有力补充,比继承灵活,不改变原有对象的情况下给对 ...
分类:
其他好文 时间:
2018-10-07 15:38:06
阅读次数:
152
结合设计模式,通过代码理解面向切面编程 通过,结构型设计模式,装饰器模式来实现AOP 通过代理模式来实现AOP 通过Unity实现AOP,配置太复杂就不贴了。。。就一个实现类的代码 ...
分类:
其他好文 时间:
2018-10-06 22:32:52
阅读次数:
199
一、定义 定义:又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口 外观模式定义了一个高层接口,让子系统更容易使用 类型:结构型 二、使用场景 1、子系统越来越复杂,增加外观模式提供简单调用接口 2、构建多层系统结构,利用外观对象作为每层的入口,简化层间调用 三、优点 简化了调用过程,无 ...
分类:
其他好文 时间:
2018-10-06 20:33:29
阅读次数:
146
MongoDB 和 Redis 都是 NoSQL,采用结构型数据存储。二者在使用场景中,存在一定的区别, 这也主要由于二者在内存映射的处理过程,持久化的处理方法不同。MongoDB 建议集群部署,更多 的考虑到集群方案,Redis 更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。 Redis ...
分类:
数据库 时间:
2018-10-06 15:33:49
阅读次数:
225
一、引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端 ...
概述: 将对象组合成树形结构以表示“部分-整体”的层次结构。“Composite使得用户对单个对象和组合对象的使用具有一致性。” 类型:结构型模式。 类图: 适用性: 1.你想表示对象的部分-整体层次结构。 2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 参与者: ...
分类:
其他好文 时间:
2018-10-05 01:03:20
阅读次数:
169
概述: 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 类型:结构型模式。 类图: 适用性: 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换。 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。 这时 ...
分类:
其他好文 时间:
2018-10-05 01:02:45
阅读次数:
149
概述: 运用共享技术有效地支持大量细粒度的对象。 类型:结构型模式。 类图: 适用性: 当都具备下列情况时,使用Flyweight模式: 1.一个应用程序使用了大量的对象。 2.完全由于使用大量的对象,造成很大的存储开销。 3.对象的大多数状态都可变为外部状态。 4.如果删除对象的外部状态,那么可以 ...
分类:
其他好文 时间:
2018-10-05 01:01:24
阅读次数:
190
概述: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 类型:结构型模式。 类图: 适用性: 1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 2.处理那些可以撤消的职责。 3.当不能采用生成子类的方法进行扩充时。 参与者: 1. ...
分类:
其他好文 时间:
2018-10-05 01:00:11
阅读次数:
174