摘要:
1. 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止 2. 动机 假设现在开发一个在线订购系统。希望对系统访问进行限制,只允许认证用户创建订单。可是,在接下来的几个月里,不断有新的需求提了出来... 阅读全文
posted @ 2021-07-27 22:53
慕仙白
阅读(130)
评论(0)
推荐(0)
摘要:
1. 意图 提供对象的替代品或其占位符。代理控制着对于原对象的访问,允许在将请求提交给对象前后进行一些处理 2. 动机 在面向对象的系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问对象会给使用者或者系统结构带来很多麻烦 3. 适用性 阅读全文
posted @ 2021-07-27 20:57
慕仙白
阅读(206)
评论(0)
推荐(0)
摘要:
1. 意图 运用共享技术有效的支持大量细粒度的对象 2. 动机 假设开发了一款简单的游戏:玩家们在地图上移动并进行相互射击。大量的子弹、导弹和爆炸弹片在整个地图上穿行,为玩家提供紧张刺激的游戏体验。但是,运行了几分钟后,游戏因为内存容量不足而发生了崩溃。研究发现,每个粒子(一颗子弹、 一枚导弹或一块 阅读全文
posted @ 2021-07-27 16:17
慕仙白
阅读(150)
评论(0)
推荐(0)
摘要:
1. 意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 2. 动机 将一个系统划分成若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一就是引入一个外观对象,他为子系统 阅读全文
posted @ 2021-07-27 15:17
慕仙白
阅读(131)
评论(0)
推荐(0)
摘要:
1. 意图 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象内部表示 2. 动机 有时候,会使用不同的算法来遍历集合中的元素,不断地向集合中添加遍历算法会模糊其高效存储数据的主要职责。此外,有些算法可能是根据特定应用订制的,将其加入到泛型集合类中会显得非常奇怪。另一方面,使用多种集 阅读全文
posted @ 2021-07-27 14:15
慕仙白
阅读(88)
评论(0)
推荐(0)
摘要:
1. 意图 动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活 2. 动机 在某些情况下,我们可能会“过度的使用继承来扩展对象的功能”。继承是静态的,无法在运行时更改已有对象的行为,只能使用由不同子类创建的对象来替代当前的整个对象;并且随着子类的增多(扩展 阅读全文
posted @ 2021-07-27 12:57
慕仙白
阅读(119)
评论(0)
推荐(0)
摘要:
1. 意图 讲对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性 2. 动机 如果应用的核心模型能用树状结构表示,在应用中使用组合模式才有价值 假如,有两类对象:产品和盒子。一个盒子可以包含几个产品或多个较小的盒子。这些小盒子也可以包含 阅读全文
posted @ 2021-07-27 11:12
慕仙白
阅读(166)
评论(0)
推荐(0)
摘要:
1. 意图 将抽象部分与它的实现部分分离,使它们可以独立的变化 2. 动机 如左图所示,如果此时需求变化,假设有n个形状(圆形,方形,长方形...),增加m个颜色,则需要额外增加(n+1)*m个类,会造成类爆炸。另外,代码后期维护成本很高。桥模式使用组合代替继承来解决这个问题。这样只会增加m个新类, 阅读全文
posted @ 2021-07-27 10:01
慕仙白
阅读(356)
评论(0)
推荐(0)
摘要:
1. 意图 将一个类的接口装换成客户希望的另外一个接口 2. 动机 有时,为复用而设计的工具类不能够被复用仅仅是因为它的接口与专业应用领域所需要的接口不匹配。Adapter经常还要负责提供那些被匹配的类所没有提供的功能(有点类似装饰模式) 3. 适用性 想使用一个已经存在的类,而它的接口不符合你的需 阅读全文
posted @ 2021-07-27 08:59
慕仙白
阅读(327)
评论(0)
推荐(0)
摘要:
1. 意图 保证一个类只有一个实例, 并提供一个访问该实例的全局节点 2. 动机 控制某些共享资源(数据库或文件)的访问权限 为该实例提供一个全局访问点 3. 适用性 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时 更严格的控制全局变量 4. 结构 5. 效果 1) 对唯一实例的受控访 阅读全文
posted @ 2021-07-27 07:53
慕仙白
阅读(97)
评论(0)
推荐(0)
摘要:
1. 意图 将一个复杂对象的创建与它的表示分离,使得同样的创建过程可以创建不同的表示 2. 动机 软件系统中,有时候面临着一个复杂对象的创建工作,通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将他们组合在一起的算法相对稳定 如何应对这种变化? 阅读全文
posted @ 2021-07-27 06:48
慕仙白
阅读(157)
评论(0)
推荐(0)

浙公网安备 33010602011771号