范例(Examples)
上一項重構(gòu)結(jié)束時,Person將Department隱藏起來了:
class Person...
Department _department;
public Person getManager() {
return _department.getManager();
}
class Department...
private Person _manager;
public Department(Person manager) {
_manager = manager;
}
為了找出某人的經(jīng)理,客戶代碼可能這樣寫:
manager = john.getManager();
首先在Person中建立一個[受托對象(delegate)取得函數(shù)]:
manager = john.getDepartment.getManager();
然后逐一處理每個委托函數(shù)。
為方便起見,我也可能想要保留一部分委托關(guān)系(delegations)。此外我也可能希望對某些客戶隱藏委托關(guān)系,并讓另一些用戶直接使用受托對象。
上一項重構(gòu)結(jié)束時,Person將Department隱藏起來了:
class Person...
Department _department;
public Person getManager() {
return _department.getManager();
}
class Department...
private Person _manager;
public Department(Person manager) {
_manager = manager;
}
為了找出某人的經(jīng)理,客戶代碼可能這樣寫:
manager = john.getManager();
首先在Person中建立一個[受托對象(delegate)取得函數(shù)]:
manager = john.getDepartment.getManager();
然后逐一處理每個委托函數(shù)。
為方便起見,我也可能想要保留一部分委托關(guān)系(delegations)。此外我也可能希望對某些客戶隱藏委托關(guān)系,并讓另一些用戶直接使用受托對象。