Remove Middle Man(移除中间人)

本文探讨了在软件开发中,当服务类过度充当受托对象的中间人时,如何通过重构来移除这种中间层。通过建立获取受托对象的函数并逐步将客户代码直接调用受托对象的方法,可以简化代码结构,提高效率。文章提供了一个具体的Person类和Department类的范例,展示如何实施这一重构策略。
摘要由CSDN通过智能技术生成

动机

Hide Delegate的“动机”一节中,我谈到了“封装受托对象”的好处。但是这层封装也是要付出代价的,它的代价就是:每当客户要使用受托类的新特性时,你就必须在服务端添加一个简单委托函数。随着受托类的特性(功能)越来越多,这一过程会让你痛苦不已。服务类完全变成了一个“中间人”,此时你就应该让客户直接调用受托类。

很难说什么程度的隐藏才是合适的,还好,有了Hide Delegate和Remove Middle Man,你大可不必操心这个问题,因为你可以在系统运行过程中不断进行调整。随着系统的变化,“合适的隐藏程度”这个尺度也相应改变。6个月前恰如其分的封装,现今可能就显得笨拙。

做法

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

范例

class Person..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值