我是MVC
的新手。根据MVC教程,Model是包含业务逻辑的类。但在我提到的所有示例中,Model仅包含声明(使用接口)。为什么模型不能包含业务逻辑的定义。由于我与MVVM模型进行了比较,其中Model包含定义。
为什么模型看起来像这样?
public interface IDBModel
{
void addRecord();
void deleteRecord();
}
而不是像下面那样。,
public Class DBModel
{
void addRecord()
{
// Insert logic
}
void deleteRecord()
{
// Delete logic
}
}
请帮助我通过一些实时示例来理解MVC和MVVM中的“模型”目的。
答案 0 :(得分:1)
模型旨在封装数据,使您可以更轻松地从应用程序的不同逻辑区域进行传输。您提供的第一个示例不正确,因为您正在使用方法定义接口。你更有可能看到一个看起来像这样的模型:
public class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName() {
return string.Format("{0} {1}", FirstName, LastName);
}
}
请注意,我使用属性作为传输数据的方法,但是有一个执行轻量级逻辑的方法(这也可以作为只读属性完成)。 90%的时间这是您的模型的样子。
答案 1 :(得分:1)
我认为MVC中的M更像是一个视图模型。它包含视图显示所需的所有属性和格式化逻辑。无需为其提供接口。
控制器负责根据从服务接收的模型构建该视图模型。
答案 2 :(得分:1)
我认为您误解了 Model
。
Worng: 模型是包含business logic
(不是业务逻辑)的类。
模型: 模型对象是应用程序的一部分,用于实现 应用程序数据域的逻辑。 通常,模型对象检索并存储数据库中的模型状态。例如,Product对象可能从数据库中检索信息,对其进行操作,然后将更新的信息写回SQL Server中的Products表。
看看at official ASP.NET MVC Site。
为什么模型看起来像这样?
您的申请可能会遵循某些不同的模式。除了MVVM。
实时示例/基本理解: Click Here