【DDD(领域驱动设计)思想解读及优秀实践 22】|泛化建模(上):领域知识更抽象怎么办?
上节课,我们学习了“限定”技术。利用这个技术可以丰富模型的语义并简化关联。今天,我们要挑战领域建模中的另一个话题——泛化。
泛化是领域建模技能由初级水平迈向中、高级水平的门槛。也就是说,如果不懂泛化,那么你的领域建模水平就始终停留在中级以下。初步掌握了泛化,那么你的水平可能就能达到中级。把泛化玩得出神入化,那么大概就能达到高级水平了。
领域建模层面的泛化,大体上相当于面向对象设计中的继承和多态。如果你学习过“设计模式”的话,还记得刚开始的“痛苦”吗?其实,整本《设计模式》,无非是教你怎么灵活运用多态罢了。而在领域建模层面,与《设计模式》对应的就是《分析模式》。整本《分析模式》也无非是教你怎么成为使用泛化的高手。
我们现在要讲的内容,尽管达不到“分析模式”的高度,但是可以为你将来的学习打下基础,帮你在实际工作中解决一些相对复杂的问题了。
我安排了5节课的时间,带你分别由泛化的建模、泛化的数据库设计以及泛化的代码实现由浅入深地认识和理解泛化。
这节课会围绕着“在子项目上报工时”这个需求来展开讨论,演示泛化的建模方法。还是老办法,我作项目经理,你作