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

代表团:当我的对象使用另一个对象的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被删除时,数据库可能仍然在(聚合)。

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

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

  1. c和java的区别_论C语言和Java的区别

    原标题: 论C语言和Java的区别 在计算机的发展史上,出现过几百种编程语言,经过多年的发展,留下来的编程语言里面,历史最悠久的是最基础的C 语言,最流行的是Java,发展势头最好的是Python·· ...

  2. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  3. java引用公共类_使用键引用从Java公共类获取值 - java

    我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...

  4. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

  5. java青蛙过河打字_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  6. java面试题成都_成都汇智动力-java面试——多线程面试题

    原标题:成都汇智动力-java面试--多线程面试题 1.多线程有什么用?发挥多核CPU的优势 防止阻塞 便于建模 2.创建线程的方式继承Thread类 实现Runnable接口 至于哪个好,不用说肯定 ...

  7. 我的世界java版合成表_我的世界:Java版和基岩版的5个合成表差异,知道半数,老MC无疑。...

    "不要在云了,你这个云玩家!"不知道你没有没有因为某些原因被网友说成是MC的云玩家,我就听到过一个很冤枉的故事.一个已经玩了5年之久的基岩版玩家,被一个玩了一年Java版的玩家硬生 ...

  8. 网易 java社招面试_十月底—最新网易Java岗社招面试经历分享

    image (面试题+答案领取方式:关注公众号白楠楠获取) 网易面试题 面向对象的特点有哪些? 列举几个java常用的package及其作用 接口和抽象类有什么联系和区别 重载和重写有什么区别 jav ...

  9. java rhino js类_让Rhino JS看Java类

    我正在玩 Rhino,我已经成功使用了stdlib中的Java类,但没有使用我编译的Java代码. 例如,这工作正常: print(new java.util.Date()); 但是使用NanoHTT ...

  10. java azure blob 查询_快速入门:适用于 Java 的 Azure Blob 存储客户端库 v8 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:使用 Jav ...

最新文章

  1. 从15000个Python开源项目中精选的Top30,Github平均star为3707,赶紧收藏!
  2. Net设计模式之抽象工厂模式(Abstract Factory Pattern)(1)
  3. 六款小巧的HTTP Server
  4. aix oracle 10.2.0.1 升级 10.2.0.4,AIX Oracle RAC 升级到10.2.0.4.0要特别注意的问题 - 爱肯的专栏 ......
  5. 听说你盗图都盗绿了?
  6. python随机分组的思路_python – 对对象进行分组以实现所有组的类似平均属性
  7. 好看的php表格样式,HTML5制作表格样式
  8. JAVA 正则表达式(大全)
  9. pdf文件过大如何缩小但保证清晰度
  10. 解决object at 0x01DB75F0
  11. UINO优锘:产品实施“八步法”让客户感受DCV实施的专业性
  12. 办理icp许可证对经营范围还有要求吗
  13. 扫盲serverless
  14. 浅谈深度学习落地问题
  15. MoveIt 1 源码构建: Linux
  16. 轻量级开源聊天解决方案喧喧发布 1.0 版本
  17. 视频信号指标与测试方法
  18. python爬虫探索原神世界(角色篇)
  19. Give up sending metadata request since no node is available
  20. pythonDay06核心编程part2(类装饰器,元类,垃圾回收,内建属性(属性拦截器),内建函数(fliter,map,reduce,sorted),集合,functools,模块进阶)

热门文章

  1. Windows之——pid为4的system进程占用80端口的解决办法
  2. java 导出多个excel_Java导出Excel压缩包
  3. 2019年全国一二线城市程序员工资大调查
  4. (转)DirectX不是全部!3D游戏图形技术解析
  5. 工业测试软件技术指标,工业过程难测参数软测量建模方法研究及应用
  6. 解决win7任务栏谷歌浏览器chrome图标丢失、异常空白的问题
  7. math四舍五入 java_使用Math.cei将Java四舍五入到int
  8. 对java方法进行功能增强的三种方法
  9. JAVA 中的this 是什么意思?
  10. mac注销快捷键_Mac快捷键大全