gpt4 book ai didi

c# - 模型和 Controller 之间的关注点分离

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:16 25 4
gpt4 key购买 nike

我仍在尝试理解整个关注点分离,但我不明白的一件事是模型和 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com