大家好,又回到一起讨论领域驱动的时间了。今天呢,来谈下书中提到的《设计模式》应用这方面的内容。
作者在文中只是提到了要从模型设计的角度来看待设计模式,并简略地举了两个例子来粗略说了下设计模式如何应用在领域驱动中。嗯,具体的就靠读者自己去发挥理解了。这就有点象网上的一个段子:老师在黑板上写个1+1=2,懂了么?嗯,你现在可以去解微积分作业了。笑~~
当然,我早就在第四篇的设计模式中给到大家的设计规范中,已经说到了如何实际使用设计模式在模型设计中。虽然没有展开,但是怎么用法是已经具体讲解了。因此这里就不再重复一遍了。
我更想说的,是从更高的一个思维层面来看这个问题,用中国古话来讲就是:他山之石、可以攻玉。
就象我经常会用数字逻辑中真值表来检查业务过程的所有可能状态的对应处理是否完善。《设计模式》虽然是针对面向对象代码设计中所遇到的问题而提出的,但它非常清晰地揭示了很多隐藏在深层面的业务核心概念,这是与领域驱动设计非常契合的。良好地去应用这些设计模式,可以更快地挖掘出领域中隐藏知识。
各类用于模型设计的工具、方法、规范、准则其实都是可以被应用在领域驱动设计中的。比如我上篇提到的API设计五要素,上文提到的真值表等等。我们学习工具,不要去机械地学习它的使用,更要去分析理解它背后的设计理念,所面对的问题和解决思路,它的局限性和适用面;再进一步是了解它背后的思考角度和方法。一旦掌握了,那么只要是场景适合的时候,就可以灵活应用而不再受具体场景的拘泥,从而进入到所谓无招胜有招的境界了。
如果你从《设计模式》的目录上看,它将所有的模式分成三类,是从对象的创建、结构、行为三个角度去设计抽象的。是不是很有启发?
这就是我解读领域驱动设计中所得到的一些感悟,在这里分享给大家。