为什么模型在MVC中只有声明

本文关键字:声明 MVC 模型 为什么 | 更新日期: 2023-09-27 18:11:37

我是MVC的新手。根据MVC教程,模型是包含业务逻辑的类。但是在我引用的所有示例中,Model只包含声明(使用接口)。为什么模型不能包含业务逻辑的定义。因为我比较了MVVM模型,其中model包含了定义。

为什么模型长这样?

public interface IDBModel
{
    void addRecord();
    void deleteRecord();
}

不像下面那样,

public Class DBModel
{
  void addRecord()
  {
       // Insert logic
  }
  void deleteRecord()
  {
       // Delete logic
  }
} 

请帮助我了解MVC和MVVM中的"模型"的目的与一些实时的例子。

为什么模型在MVC中只有声明

模型是用来封装数据的,这样可以更容易地从应用程序的不同逻辑区域进行传输。你给出的第一个例子是不正确的,因为你定义了一个带有方法的接口。你更有可能看到这样的模型:

public class Person {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string FullName() {
        return string.Format("{0} {1}", FirstName, LastName);
    }
}
请注意,我使用属性作为传输数据的一种方式,但有一个方法执行轻量级逻辑(这也可以作为只读属性完成)。90%的情况下,这就是你的模型的样子。

我会把MVC中的M更像一个视图模型。它包含视图显示自身所需的所有属性和格式化逻辑。不需要接口

控制器负责根据从服务接收到的模型构建视图模型。

我想你误解了 Model

错误: 模型是包含business logic(不是业务逻辑)的类。

模型: 模型对象是应用程序中实现应用程序数据域逻辑的部分。通常,模型对象在数据库中检索和存储模型状态。例如,Product对象可以从数据库中检索信息,对其进行操作,然后将更新后的信息写回SQL Server中的Products表。

看一下官方ASP。. NET MVC站点。

为什么模型看起来像这样?

您的应用程序可能遵循某些不同的模式。除MVVM外。

实时示例/基本理解:点击这里