设计模式纵谈--Interpreter,Iterator

16.Interpreter解释器(行为模式)

Motivation
 
将问题抽象为语言。

Intent
给定一个语言,定义它的文法的一种表示,并定义一种解释器,
这个解释器使用该表示来解释语言中的句子。


喜欢的方式是扩展而不是修改。

对于变化的东西,用封装。对于不变的东西,不需要做变化封装。


Interpreter模式比较适合简单的文法表示,对于复杂的文发表示,
Interperter模式会产生比较大的类层次结构,需要求助于语法分析
生成器这样的标准工具。

扩展,而不是修改。

开闭原则:对扩展是开发,对修改时关闭。
对程序进行修改是扩展,而不是修改。
 

17中介者
<1>依赖关系的转化

Motivation
在软件构建过程中,经常会出现多个对象互相关联交互的情况,
对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,
这种直接的引用关系将面临不断的变化。

在这种情况下,我们科使用一个中介者来管理对象间的关联关系,
避免相互交互的对象之间的紧耦合引用关系,从而更好的抵御变化。

模式的方法就是在解耦。

Intent
用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显示
的相互引用,从而使其松散耦合。

关系集中处理,代码不要散落到很多地方,权限要集中。
权限的集中表示责任的单一,职责的单一。

Mediator模式的几个要点
.将多个对象间复杂的关联关系解耦,Mediator模式将多个对象间的
控制逻辑进行集中管理,变多个对象相互关联为对个对象和一个
中介者关联,简化了系统的维护,抵御了可能的变化。


间接层:就是为了解耦。

计算机行业,任何技术都可以用间接层来解决。

.随着控制逻辑的复杂化,Mediator具体对象的实现可能相当
复杂。这时候对mediator对象进行分解处理。

.Facade模式是解耦系统外道系统内(单向)的对象关联关系;
Mediator模式解耦是系统内各个对象之间的关联关系(双向)

减少对象之间的依赖关系。


18Iterator模式

面向对象的可复用基础。

Motivation
在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,
我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中
包含的元素;同时这种 遍历也为同一种算法在多种集合对象上进行操作提供可能。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值