我仍在尝试理解整个关注点分离,但我不明白的一件事是模型和 Controller 在数据修改方面的区别。
假设我有一个简单的模型:
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;
}
}
我相信这就是模型的意义所在。但是,我在哪里调用这些方法呢?它在 Controller 内部吗?我可以在那里修改数据吗?例如,如果我想从 Jim 那里转一些钱给 Joe;我会从 Controller 调用此方法 joe.DepositMoney(jim.WithdrawMoney(25));
吗?或者我应该在模型中创建一个转账方法并只调用这个方法吗?
最佳答案
模型应该具有与其自身功能相关的功能。您可以有一个接收另一个帐户的功能转移。
Controller 是处理用户交互的组件,使用模型,并最终选择要呈现的 View 以显示 UI
你应该在你的 Controller 中使用这个方法。无论如何,我建议您保持项目稳定,如果您的项目增长(并且增长很快),您将在 Controller 中完成大量逻辑,并且很难解决错误。
您可以使用服务将逻辑保持在 Controller 外部,而 Controller 使用此服务。无论如何,这是一个非常简单的方法。我建议您阅读以下书籍:http://blogs.msdn.com/b/cesardelatorre/archive/2010/03/26/our-brand-new-ddd-n-layer-net-4-0-architecture-guide-book-and-sample-app-in-codeplex.aspx
你会得到很多对你 future 有帮助的概念和想法。
然后最重要的是拥有大量工具并使用适合您问题的确切工具。
关于c# - 模型和 Controller 之间的关注点分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896921/