重构二--在对象之间搬移特性(Remove Middle Man)(4)--范例

重构二--在对象之间搬移特性(Remove Middle Man)(4)--范例
范例(Examples)
上一项重构结束时,Person将Department隐藏起来了:
class Person...
    Department _department;
    public Person getManager() {
       return _department.getManager();
    }

class Department...
    private Person _manager;
    public Department(Person manager) {
       _manager = manager;
    }
为了找出某人的经理,客户代码可能这样写:
    manager = john.getManager();
首先在Person中建立一个[受托对象(delegate)取得函数]:
    manager  = john.getDepartment.getManager();
然后逐一处理每个委托函数。

为方便起见,我也可能想要保留一部分委托关系(delegations)。此外我也可能希望对某些客户隐藏委托关系,并让另一些用户直接使用受托对象。

你可能感兴趣的:(重构二--在对象之间搬移特性(Remove Middle Man)(4)--范例)