【问题标题】:Applying mvc to domain-driven design将 mvc 应用于领域驱动设计
【发布时间】:2010-05-13 04:55:49
【问题描述】:

从实际的角度来看,如何使域模型适应 MVC 模式?例如,我可以使用一些包装类吗?

【问题讨论】:

    标签: java model-view-controller domain-driven-design wrapper


    【解决方案1】:

    它们并不真正相关。

    MVC 是一种设计模式,用于分离存储数据(模型)、呈现数据的各种视图(视图)以及与数据交互(控制器)的关注点。虽然它可能是一种“设计”模式,但它实际上是关于代码的设计。这些视图通常但不一定用于 GUI。

    领域驱动设计是一种设计软件的风格,您专注于对领域进行建模,以创建问题领域的共享且易于理解的模型——“领域模型”。领域驱动设计不仅仅是“设计”,还体现在代码、需求、各利益相关者之间的对话等方面。

    因此,尽管您当然可以使用域模型中的对象来实现 MVC,但您不会真正“适应”另一个。例如,如果您为 BankAccount 实体建模并为其编写相应的类,则可以将其用作 MVC 三元组中的模型。也许控制器处理存款和取款现金,并且模型更改时会更新几个视图(例如借记、贷记和摘要视图)。 MVC 有多种风格,根据您选择的内容,您最终可能会修改您的域模型。例如,您可以使用观察者模式,只要模型实体发生更改,您的视图就会收到通知。这确实意味着您会将非域概念(观察者注册、通知等)混合到域对象中。在这种情况下,最好包装域对象以保持域模型和表示层之间的清晰分离,如果这对您很重要的话。也许这就是您所说的“适应”另一个的意思。

    【讨论】:

    • "如果这对您很重要,最好在这种情况下包装域对象以保持域模型和表示层之间的清晰分离。也许这就是您所说的“适应”一对一”是的,这就是我的意思。由于域由于域模型应该是贫血的,我想知道是否使用包装器。感谢您的反馈。
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多