【发布时间】:2010-05-13 04:55:49
【问题描述】:
从实际的角度来看,如何使域模型适应 MVC 模式?例如,我可以使用一些包装类吗?
【问题讨论】:
标签: java model-view-controller domain-driven-design wrapper
从实际的角度来看,如何使域模型适应 MVC 模式?例如,我可以使用一些包装类吗?
【问题讨论】:
标签: java model-view-controller domain-driven-design wrapper
它们并不真正相关。
MVC 是一种设计模式,用于分离存储数据(模型)、呈现数据的各种视图(视图)以及与数据交互(控制器)的关注点。虽然它可能是一种“设计”模式,但它实际上是关于代码的设计。这些视图通常但不一定用于 GUI。
领域驱动设计是一种设计软件的风格,您专注于对领域进行建模,以创建问题领域的共享且易于理解的模型——“领域模型”。领域驱动设计不仅仅是“设计”,还体现在代码、需求、各利益相关者之间的对话等方面。
因此,尽管您当然可以使用域模型中的对象来实现 MVC,但您不会真正“适应”另一个。例如,如果您为 BankAccount 实体建模并为其编写相应的类,则可以将其用作 MVC 三元组中的模型。也许控制器处理存款和取款现金,并且模型更改时会更新几个视图(例如借记、贷记和摘要视图)。 MVC 有多种风格,根据您选择的内容,您最终可能会修改您的域模型。例如,您可以使用观察者模式,只要模型实体发生更改,您的视图就会收到通知。这确实意味着您会将非域概念(观察者注册、通知等)混合到域对象中。在这种情况下,最好包装域对象以保持域模型和表示层之间的清晰分离,如果这对您很重要的话。也许这就是您所说的“适应”另一个的意思。
【讨论】: