委托和组合的对比

2019-07-11  本文已影响0人  潭潭_180

委托是将一部分功能分割出去完成,即委托者(delegator)将自己委托给受托者(delegatee),受托者方法中参数为委托者对象;然后委托者调用受托者类对象。

结构图

委托与组合的对比:

(1)组合:

delegateA {

delegateeB b;

void methodA(); { b.methodB();;}

}

delegateeB {

void methodB(); {}

}

(2)委托:

delegateA {

delegateeB b;

voidmethodA(); { b.methodB(this);; }voiddo(); {}

}

delegateeB {

void methodB(delegateA a); { a.do();; }

}

委托相比于组合,是在受托者方法中加入了委托者对象。

上一篇 下一篇

猜你喜欢

热点阅读