敏捷软件开发 - 原则、模式与实践 —— 设计模式(三)FACADE模式和MEDIATOR模式

本文为敏捷软件开发 - 原则、模式与实践系列的一部分。

本文对应原书第15章

介绍

这两个模式有着共同的目的。它们都把某种策略施加到另外这一组对象上。FACADE模式从上面施加策略,而MEDIATOR模式则从下面施加策略。FACADE模式的使用是明显且受限的,而MEDIATOR模式的使用则是不明显且不受限的。

FACADE模式

在这里插入图片描述

图1

MEDIATOR模式

在这里插入图片描述

图2

图2展示了QuickEntryMediator的结构。用一个JList和一个JTextField构造了一个QuickEntryMediator类的示例。QuickEntryMediatorJTextField注册了一个匿名的DocumentListener。每当文本发生变化时,这个listener就调用textFieldChanged方法。接着,该方法在JList中查找以这个文本为前缀的元素并选中它。

JListJTextField的使用者并不知道该MEDIATOR的存在。它安静地呆着,把它的策略施加在那些对象上,而无需它们的允许或者知晓。

结论

如果策略涉及范围广泛并且可见,那么可以使用FACADE模式从上面施加该策略。另一方面,如果策略隐蔽并且有针对性,那么MEDIATOR模式是更好的选择。Facade通常是约定的关注点。每个人都同意去使用该facade而不是隐藏于其下的对象。另一方面,Mediator则对用户是隐藏的。它的策略是既成事实的而不是一项约定事务。

完整内容请查看敏捷软件开发 - 原则、模式与实践系列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值