可复用策略Composite合成/Aggregate 聚合
发布时间:2020-12-13 20:33:12 所属栏目:百科 来源:网络整理
导读:优先考虑composit|Aggregate,尽量不要使用extends,association(关联) 的特殊种类 Aggregation 它表示'拥有'关系或整体与部分的关系 Composition 可理解成强关联关系,强得多的'拥有'关系,一个合成的新的对象完全拥有对其组成部分的支配权,包括它们的创
优先考虑composit|Aggregate,尽量不要使用extends,association(关联) 的特殊种类 Aggregation 它表示'拥有'关系或整体与部分的关系 Composition 可理解成强关联关系,强得多的'拥有'关系,一个合成的新的对象完全拥有对其组成部分的支配权,包括它们的创建/湮灭, 一个合成关系中的成分对象是不能与另一个合成关系共享的。 一个成分对象在同一时刻内只属于一个合成关系 合成是值的聚合(Aggregation by value)、聚合是引用的聚合(Aggregation by Reference) ·composite/aggregation Reuse 新对象存/取成分对象的唯一方式是接口。 成份对象的内部细节,新对象是不可见。 此复用机制支持包装/所需依赖较少 每一个新对象可以将焦点集中在一个任务上 新对象可以动态引用与成分对象相同类型的实例,类似 setUserList(User userObj) 在些User可看作一个接口 此合成/聚合复用机制会有多个实例需要管理 ·使用extends extends 是OO特有的复用机制,很容易就会被滥用。 继承是类型的复用,它通过扩展一个已有对象的实现来对现有功能进行扩展/增加新的功能,基类要捕获共同的属性/形为,而子类要扩展/重写一些属性/形为。 继承会破坏超类的封装,因为它会将处理细节暴露给子类。 水波效应,如果超类处理机制改了,相应对子类的改动是非常大的。 IS A 与 HAS A 的区别 IS A 代表一个类是令一个类的一种 HAS A 代表一个类是令一个类的一个角色 ·composite/aggregation复用机制可应用到几乎任何环境中去,而继承只能应用到有限的环境中。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |