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

本文关键字:设计模式 MVC5 应用程序 | 更新日期: 2023-09-27 18:01:07

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

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

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

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

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

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

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

我会说"不"。AFAIK,域模型,富或贫血症,模式晚于GoF模式。因此,GoF模式位于一个对这些概念不可知的空间中。你可以说,它们更适用于"丰富"的领域模型,从本质上讲,它包含更多的行为。它是否包含比"贫血"模型更多的状态取决于实现。

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

在这个问题上绝对是"不"。例如,Strategy在域模型中与在专用于表示或数据访问之类的层中操作的组件中一样在家中。

1.可以公平地说,"四人帮"的设计模式是针对丰富的领域模型的吗

我想这并不是因为这些模式是针对OOP的,根据定义,对象由属性和行为组成,所以猜猜这些模式中的对象都有什么。

2.这些模式是否仅针对业务逻辑层?

这些模式是基于OOP的,因为你可以在每一层中使用OOP,所以你也可以使用这些模式。