事业 - 最佳实践 - 架构 - 泛化建模
《事业-最佳实践-架构》系列,本篇整理至极客时间《手把手教你落地 DDD》专栏
原则
让模型更加简洁、更易理解
提升代码可理解、可维护性
步骤
理解
在特性种类、特性值、业务规则、操作接口、操作实现等方面,不同的类既有共性又有个性的时候,才有所谓分类,也才可以进行泛化。
泛化是类和类之间的关系
识别
归纳法:一个方向是先识别出了子类,然后从子类中归纳出共性,形成父类
演绎法:另一种是先识别出父类,然后发现这个类中的不同对象有一些显著的差异,需要再分成两个子类
权衡
业务视角
引入泛化后,没有在模型里增加新的知识,使模型更加简洁,更容易理解
技术视角
模型能自然、直接地映射到设计模型和代码
对实现代码的简洁性、可理解性、可维护性等方面有提升
选择
第一,假如只有特性值不同,那么用特性值为对象分类就可以了,不必使用泛化。
第二,如果特性种类不同,那么很可能要采用泛化。
第三,如果在业务规则、操作接口或操作实现方面有共性和个性,首先考虑在实现上是否可以使用策略模式,如果可以,那么在领域模型中就不必泛化,否则考虑泛化
评论