在MVC5应用程序中使用设计模式

时间:2016-08-07 08:00:53

标签: c# .net design-patterns

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

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

  1. 公平地说,Gang of Four设计模式是针对富域模型(而不是贫血),因为示例中的大多数类都包含状态和行为?
  2. 模式是否仅针对业务逻辑层?例如,假设您有一个具有以下图层的MVC5应用程序:

    • 演示文稿:MVC5
    • 业务逻辑层:丰富域模型
    • 数据层:实体框架
  3. 在此示例中,表示层具有Model类,而Data层具有数据类。数据层中的数据类直接映射到数据库表。例如,名为person的数据库表具有两个属性(id和name),将导致名为person的数据类具有两个属性和两个实例变量。因此,这些模式不适用于数据层。它们是否会应用于MVC5(模型层)。

2 个答案:

答案 0 :(得分:1)

  

可以公平地说,Gang of Four设计模式是针对富域模型(而不是贫血),因为示例中的大多数类都包含状态和行为吗?

我争辩说没有'。 AFAIK,Domain Model,丰富或贫血,模式比GoF模式晚。因此,GoF模式位于与这些概念无关的空间中。你可以争辩说,他们更适合作为一个富人'域模型,就其本质而言,包含更多行为。它是否包含更多的状态而不是“贫血”状态。模型取决于实施。

  

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

绝对没有'在这一个。例如,Strategy在域模型中的位置与在专用于表示或数据访问的层中运行的组件中的位置相同。

答案 1 :(得分:0)

  

1.公平地说,Gang of Four设计模式是针对富域模型的

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

  

2.仅针对业务逻辑层的模式是什么?

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