范例(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)。此外我也可能希望對某些客戶隱藏委托關系,并讓另一些用戶直接使用受托對象。
上一項重構結束時,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)。此外我也可能希望對某些客戶隱藏委托關系,并讓另一些用戶直接使用受托對象。