21、mediator 中介者
使用一个中间类来降低各个类之间的耦合性
为了能方便调用到其他类,我们往往在各个类里保存了其他类的指针,造成耦合性很大,各个类无法独立出来,
通过构建一个mediator类,把各个类的指针保存在mediator类里,其他类只需要保存mediator类的指针
优缺点:
降低了各个类之间的耦合性
集中控制
可以减少子类生成(可以通过生成mediator的子类来冲定义其他类的一些行为)( 不妥)
22、observer 观察者
也称发布-订阅模式,目标保存了各个观察者的指针,当发生变化时,遍历通知各观察者
优缺点:
有耦合,但耦合已经降到最低
支持广播通信
如过依赖规则不当,可能会造成观察者意外更新
23、visitor 访问者
不改变某对象的情况下,给该对象添加新操作
node ->accept(visitor*v)
|
|----------|
anode bnode
accept(v){ v->visit(this);}
优缺点:
无关的操作分离到访问者里
便于增加新操作