uml – 使用源代码区分聚合和组合关系
是否可以通过阅读源代码来区分组合和聚合关系?
我试图找到一些模式,我在下面列出了它们. 我以this site为例来解释我认为的模式 组成 public class Engine { . . . } public class Car { Engine e = new Engine(); ....... } 聚合 public class Address { . . . } public class Person { private Address address; public Person(Address address) { this.address = address; } . . . } 我发现这些模式可以区分 组成(是其中的一部分) >定义为一个类的字段. >示例:[Engine e] Engine定义为Car类的字段e >在类中实例化和分配. >示例:[Engine e = new Engine();]引擎在实例中被实例化 聚合(有) >定义为一个类的字段 >示例:[私有地址;]地址定义为字段 >在课堂上安排好 >示例:[Address address = new Address();]地址已实例化 >通过将实例作为参数发送到构造函数,在构造函数中分配. >示例:[Person person = new Person(address);]实例 我可以考虑这些来区分聚合和组成关系吗? 是否存在更多用于区分的限制因素? 解决方法
不是真的,因为没有一种独特的方式来实现每种关联(事实上,问题是我们有三种关联,“正常关联”,“聚合”和“组合”).
如果语言有指针那么你可以尝试猜测如果引擎在Car中定义为指针那么编写那段代码的程序员建议汽车和引擎之间的关系(聚合或关联)更柔和,因为删除汽车不意味着丢失Engine对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Swift 3必看:新的访问控制fileprivate和open
- c# – JavaScript运行时错误:无法获取未定义或空引用的属性
- ruby-on-rails – Heroku Cedar – 没有安装Resque前端的静
- 在react-native中使用redux框架
- NOSQL数据库的基石是CAP原则,那关系型数据库呢?
- TextMate的执行和更新’#=>’标记使用ruby 1.8而不是1.9进行
- Oracle数据库12cR2(项目实战之一):在Windows上安装Oracl
- 基于Vue实例生命周期(全面解析)
- ruby-on-rails – 未定义的方法’add_reference’
- xml – 如何在复杂类型的xsd文件中使用唯一标记?