我仍然在努力理解这种关注点的分离,有一件事我不明白,那就是模型和控制器在数据修改方面的区别。
假设我有一个简单的模型:
public class BankAccount
{
private decimal amount;
public decimal Amount
{
get
{
return amount;
}
private set
{
amount = value;
}
}
public BankAccount(decimal amount)
{
Amount = amount;
}
public decimal DepositMoney(decimal amount)
{
Amount += amount;
return amount;
}
public decimal WithdrawMoney(decimal amount)
{
Amount -= amount;
return amount;
}
}我相信这就是模型的全部内容。但是,我在哪里调用这些方法呢?它是在一个控制器里面吗?我可以在那里修改数据吗?例如,如果我想把一些钱从Jim转到Joe;我会从控制器调用这个方法joe.DepositMoney(jim.WithdrawMoney(25));吗?或者我应该创建一个在模型中转移资金的方法,并只调用这个方法?
发布于 2014-07-23 14:11:03
似乎有很多关于模型和视图模型的混淆。MVC的主要观点是
实际上,这就是ASP.NET MVC的全部内容。你有一个控制器,你创建一个View Model,你把它传递给View,然后View生成一些表示。
然而,模型是一个非常容易混淆的术语。它通常用于描述View Model数据的来源。这里的好实践是让所有逻辑在控制器之外处理;为此,您应该有一个服务层。服务基本上应该为View Models生成适当的数据,并在必要时执行适当的逻辑。所以,总而言之,这应该是这样的:
视图控制器对用户输入做出反应,确定具体发生了什么,并将所有相关数据传递到适当的service.
https://stackoverflow.com/questions/24896921
复制相似问题