坏味道——中间人(Middle Man)
特征
如果一个类的作用仅仅是指向另一个类的委托,为什么要存在呢?
问题原因
对象的基本特征之一就是封装:对外部世界隐藏其内部细节。封装往往伴随委托。但是人们可能过度运用委托。比如,你也许会看到一个类的大部分有用工作都委托给了其他类,类本身成了一个空壳,除了委托之外不做任何事情。
解决方法
应该运用 移除中间人(Remove Middle Man)
,直接和真正负责的对象打交道。
收益
- 减少笨重的代码。
何时忽略
如果是以下情况,不要删除已创建的中间人:
- 添加中间人是为了避免类之间依赖关系。
- 一些设计模式有目的地创建中间人(例如代理模式和装饰器模式)。
重构方法说明
移除中间人(Remove Middle Man)
问题
某个类做了过多的简单委托动作。
解决
让客户直接调用委托类。
引申阅读
欢迎继续阅读 代码的症与药 系列文章。