加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

组合和聚合的区别

发布时间:2020-12-14 05:27:38 所属栏目:百科 来源:网络整理
导读:1、组合和聚合的区别 组合,叫compose。在代码层面上用内部类实现,如果A类由B类组合而成,则A和B有共同的生命周期。打比方的话就是人和大脑的关系,人由大脑组合而成,如果人死了,大脑也活不成。用UML表示,是一个实心的框框。 聚合,叫aggregate。在代码
1、组合和聚合的区别 组合,叫compose。在代码层面上用内部类实现,如果A类由B类组合而成,则A和B有共同的生命周期。打比方的话就是人和大脑的关系,人由大脑组合而成,如果人死了,大脑也活不成。用UML表示,是一个实心的框框。 聚合,叫aggregate。在代码层面上用字段实现,如果A类包含B类型的字段,则A和B有各自的生命周期。打比方的话就是人和公司的关系,公司由人聚合而成。用UML表示,是一个空心的框框。 2、protected和package可见性 今天有个刚毕业的问我这个问题,说protected和package有什么区别。一时居然没反应过来。。。protected的字段和方法是子类可见,包内也可见;package仅包内可见。也就是protected > package 3、怎么实现全局唯一的字段? 不知道“全局唯一”的描述是否严谨。说到类的唯一实例,马上就会想到用单例模式。如果说有这么一个场景,一个类定义了一个字段initialized,用这个字段的值为true或者false来决定是否初始化,为了避免重复初始化,应该怎么做呢?其实就是今天看logback源代码的一点感想。有2种方法: 一种办法是把initialized声明为static字段,这样的话就算有多个类的实例,但这个字段却只会有一个。 另一种方法当然就是使用单例模式了,不需要细说了。让我奇怪的是,为什么logback里为了解决同一个问题,上述2种方法全用了呢?让我有点疑惑,难道是作者一时兴起? 4、怎么描述一系列状态 最近做一个任务模型的设计,有点头大。上网查了一些资料,好像“任务”这个东西没有一个标准的模型。不像权限模型有一个成熟的RBAC,直接拿来实现就可以了。 只好自己设计这个模型,在状态名称上有点纠结。一种风格是完成时,“已创建”、“已派发”、“已接受”…………,另一种风格是将来时,“待派发”、“待接受”、“待启动”………… 感觉前者更贴近任务本身的状态;不过后者更贴近使用者的角度,而且可以描述处理任务的下一个步骤。大家觉得哪种比较好呢? 这篇博客就不往论坛上贴了,不然肯定被投新手,说不定还会被投隐藏,妥妥的。。。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读