文章目录
领域模型模式
领域模型通常会在DDD解决方案里使用,但并非只能在这里使用,它只是一个普通的设计模式。领域模型(Domain Model,DM)模式建议架构师把注意力放在系统的预期行为以及使之工作的数据流上。理想情况下,在领域专家的悉心帮助下了解真实系统,然后尝试以类的形式来重现它。
模式概论
领域模型不用于由一组相关的类构成的对象模型。
领域模型忠实反映业务领域,尤其是领域里的流程和数据流。如果把领域建模看作从数据库结构到c#类的转变,那么就是完全没有抓到要点。
何时选择领域模型
复杂性是采用领域模型模式的驱动力。
复杂性应根据当前需求来衡量,但要找出衡量复杂性的指标,还需留意可能会在未来造成影响的改进和需求。在简单的场景里使用领域模型模式通常更加昂贵,但在较大的系统里使用却是一个明智的决定,因为它的启动和维护成本更易被消化。
注意:一种方案的主要优势在极端情况下会变成它的最大劣势。领域模型模式也是如此。用抽象模型来构思一个完整的系统,用实体及其关系来描述流程与它们的机制,这实在不容易。在我们的职业生涯里,我们遇到的最大困难并不是技术问题,而是单纯的设计问题。有时候,我们会花几个小时甚至几天时间尝试搞清楚领域的特定方面怎样表达才是最好的,是通过一个方法、一组属性还是一个领域服务有时候,我们也会耗费大量时间思索一个类的属性的使用哪个修饰符才是对的,是私有的、公共的还是只读的。
领域模型是暴露给应用程序层以及其他地方调用的公共编程接口,而这里恰恰存在隐患。应用程序层与特定客户端应用程序绑定&#