【问题标题】:Using Design Patterns in an MVC5 app在 MVC5 应用程序中使用设计模式
【发布时间】:2016-08-07 08:00:53
【问题描述】:

我知道这里描述的四人组设计模式:http://www.dofactory.com/net/design-patterns

Martin Fowler 谈到了贫血域模型(其中使用了服务层并且域对象仅包含状态,即没有行为)。丰富的领域模型意味着领域对象包含状态和行为。我有两个问题:

  1. 由于示例中的大多数类都包含状态和行为,因此可以说四人组设计模式针对的是丰富的领域模型(而不是贫乏的)?
  2. 模式是否仅针对业务逻辑层?例如,假设您有一个具有以下层的 MVC5 应用程序:

    • 演示文稿:MVC5
    • 业务逻辑层:富域模型
    • 数据层:实体框架

在此示例中,表示层具有模型类,数据层具有数据类。数据层中的数据类直接映射到数据库表。例如,一个名为 person 的具有两个属性(id 和 name)的数据库表将生成一个名为 person 的数据类,它具有两个属性和两个实例变量。因此,这些模式不适用于数据层。他们会适用于 MVC5(模型层)吗?

【问题讨论】:

    标签: c# .net design-patterns


    【解决方案1】:

    由于示例中的大多数类都包含状态和行为,因此可以说四人组设计模式针对的是丰富的领域模型(而不是贫乏的)?

    我会争辩“不”。 AFAIK,Domain Model,丰富或贫血,模式比 GoF 模式来得晚。因此,GoF 模式位于与这些概念无关的空间中。您可能会争辩说,它们更适用于“丰富”的领域模型,就其性质而言,包含更多的行为。它是否包含比“贫血”模型更多的状态取决于实现。

    模式是否仅针对业务逻辑层?

    这个绝对是“不”。例如,Strategy 在域模型中与在专用于表示或数据访问之类的层中运行的组件中相同。

    【讨论】:

      【解决方案2】:

      1.是否可以说四人组设计模式针对的是富领域模型

      我猜不是因为这些模式是针对 OOP 的,根据定义,对象由属性和行为组成,所以猜猜这​​些模式中的对象也同时拥有它们。

      2.模式是否只针对业务逻辑层?

      这些模式基于 OOP,因为您可以在每一层使用 OOP,您也可以使用这些模式。

      【讨论】:

        猜你喜欢
        • 2013-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多