先前使用type作为显示图类型的判断因子,如果新增一种图,则需要修改ChartDisplay类,违反了向修改封闭的原则。
重新构建一个抽象类AbstractChart类,所有图像显示都需继承实现抽象类,如果有新的显示类只需要扩展一个新类,而不需要修改ChartDisplay类,符合向扩展的原则。
组合/聚合可以降低类之间的耦合度,并且不会暴漏类的具体实现细节,称为“黑箱复用”;如果是使用继承机型复用,则会将实现细节暴漏给子类,破会系统的封闭性,如果基类变化,子类也随之变化,不具有灵活性,称为“白箱复用”。
一般来说,如果两个类之间是Has-A关系,则使用组合/聚合;如果是Is-A关系,则使用继承。
本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何。
推荐:
网友评论 ()条 查看