创建业务对象:组合与继承的权衡及属性实现
在软件开发过程中,设计业务对象时常常会面临继承和组合两种方式的选择。下面我们将探讨这两种方式的优缺点,并详细介绍如何实现 BaseArtisan 类的属性。
继承与组合的比较
在定义类关系时,我们可以让 BaseArtisan 继承自 Address ,但使用聚合(或组合)的方式相较于单纯依赖继承有明显的优势。
组合的优势
- 结构易理解 :
Artisan实例会有一个地址属性,该属性是另一个对象,且该对象有自己的相关属性。对于Artisan来说,可能只有一个重要地址,这种结构优势不太明显,但对于Customer和Order等对象,可能会有多个关联地址(如账单地址和送货地址),组合结构能更好地处理这种情况。 - 降低复杂性 :随着系统的对象库变得更大、更复杂,单纯基于继承的设计方法会不可避免地导致庞大的类树,很多类可能只是为了被继承而提供功能。而基于组合的设计将功能封装在单个类中,其实例成为属性本身,能显著降低复杂性。
组合的潜在缺点
- 嵌套过深 :可能会出现对象嵌套过深的情况,导致数据结构链过长。例如,在
hms_sys系统中,如果一个订单有一个客户,
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



