域模型如何与UI和数据交互而不依赖于它们?

Jon*_*Jon 2 architecture orm domain-driven-design

我已经读过有很好的设计模式可以解决以下冲突的要求:1.)域模型(DM)不应该依赖于其他层,如UI和数据持久层.2.)DM需要与UI和数据持久层交互.哪种模式可以解决这种冲突

pla*_*alx 5

我不确定你是否可以称之为设计模式,但我相信你所寻找的是依赖倒置原则(DIP).

该原则指出:

A.高级模块不应该依赖于低级模块.两者都应该取决于抽象.

B.抽象不应该依赖于细节.细节应取决于抽象.- 维基百科

当您将此原则应用于传统的分层架构时,您最终会得到广泛采用的洋葱/六角形/端口和适配器/等等.建筑.

例如,代替Presentation -> Application -> Domain -> Infrastructure域依赖于基础结构详细信息的传统,您可以反转依赖关系并使Infrastructure层依赖于Domain层中定义的接口.这允许域除了自身之外不依赖于其他任何东西.

DM需要与UI交互

关于这一点,我看不到域应该知道UI的任何场景.