36 泛化建模进阶(下):不使用泛化的替代方案,如何权衡?
你好,欢迎来到第 36 讲。
在上一讲中,我们学习了泛化建模的适用场景和判断标准。我们知道,当业务概念存在稳定的“角色”或“种类”划分,并且子类之间存在独有的状态差异时,使用泛化(继承)是一个自然而优雅的选择。
但是,我们也反复强调,“组合优于继承”是面向对象设计中一条更普适的原则。继承会带来强耦合和僵化的层级结构,这些在需要快速演化的领域模型中,可能是致命的。
那么,当我们面对一个适合用泛化来解决的问题时,是否存在不使用继承的替代方案?这些方案各自的优劣是什么?我们又该如何在这两者之间进行权衡(Trade-off)?
本讲,我们将进入泛化建模的进阶下半场,聚焦于泛化的替代方案与权衡。这将进一步提升你的设计视野,让你从“知道如何用”,升级到“知道何时不用,以及为何不用”。
一、重新审视问题:泛化的核心诉求是什么?
在寻找替代方案之前,我们必须回归问题的本质:我们使用泛化(继承),到底是为了解决什么问题?
- 代码复用:将共性的属性和方法,抽到父类中,避免在多个子类中重复编写。
- 多态分派:允许客户端面向一个统一的父类(或接口)编程,而在运行时,能够根据对象的具体子类类型,自动地调用到不同的行为实现,从而消除
if-else或switch-case。
订阅专栏 解锁全文
1629

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



