java 委托 代理 区别_区分委托,组合和聚合(Java OOdevise)

你的书很好解释,让我详细说明一下,并提供一些例子。

代表团:当我的对象使用另一个对象的function,而不改变它。

有时候一个class可能在逻辑上需要很大。 但是大class不是一个好的编码实践。 有时候,一个类的某些function可能以多种方式实现,您可能需要稍微改变一下。

class FeatureHolder { void feature() { // Big implementation of the feature that you dont want to put in the class Big } } class Big { private FeatureHolder FH = new FeatureHolder(); void feature() { // Delegate to FeatureHolder. FH.feature(); } //.. Other features }

从上面的例子来看,FH的Big.feature()调用function并没有改变。 这样,Big类就不需要包含特征的实现(分工)。 另外,feature()可以像“NewFeatureHolder”一样被其他类实现,而Big可以select使用新的特性持有者。

构图:我的对象由其他对象组成,这些对象在我的对象被分配后又不能存在 – 垃圾收集。

聚合:我的对象由其他对象组成,即使在我的对象被销毁后也可以存在。

从技术上讲,构成是“一部分”,聚合是指“关系”。 你的arm是你的一部分。 如果你不再活着,你的arm也会死亡。 你的布是不是你的一部分,但你有他们; 你可以做客,你的布料不会跟你一起去。

在编程中,有些对象是另一个对象的一部分,没有它就没有逻辑意义。 例如,一个button组成一个窗口框架。 如果一个框架closures,该button没有理由在(组成)。 一个button可能有一个数据库的引用(如刷新数据); 当button被删除时,数据库可能仍然在(聚合)。

对不起,我的英语,希望这有助于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值