Remove Middle Man(移除中间人)

让类做了过多的简单委托动作。
让客户直接调用受托类。
这里写图片描述

1.动机

  1. Hide Delegate(隐藏“委托关系”)的“动机”一节中讲到“封装受托对象”的好处。但是这层封装也是要付出代价的,他的代价就是:每当客户要是用受托类的新特性时,你就必须在服务端添加一个简单委托函数。随着受托类得特性(功能)越来越多,这一过程会让你痛苦不已。服务类完全变成一个“中间人”,此时你就应该让客户直接调用受托类。
  2. 很难说什么程度的隐藏才是合适的。还好,有了Hide Delegate和Remove Middle Man,你大可不必操心这个问题,因为你可以在系统运行过程中不断进行调整。随着系统的变化,“合适的隐藏程度”这个尺度也相应改变。6个月月前恰如其分的封装,现今可能就显得笨拙。重构的意义就在于:你永远不必说对不起—只要把出问题的地方修不好就行了。

2.做法

  1. 建立一个函数,用以获得受托对象。
  2. 对于每个委托函数,在服务类中删除该海曙,并让需要调用该函数的客户转为调用受托对象。
  3. 处理每个委托函数后,编译测试。

猜你喜欢

转载自blog.csdn.net/sinat_25682007/article/details/73526579