c# - 封装业务决策 - 如何返回它们
问题描述
假设我们有以下要求:
- 用户输入一些数据
- 该软件决定用户是否可以将数据附加到现有客户或是否需要创建新客户
- 然后,向用户呈现客户列表或“新客户”页面。
我的目标是,我不想在用户界面的 ViewModel 中溢出业务逻辑(=决定做什么)。
考虑以下取自虚构视图模型的示例代码:
void Main()
{
var businessLogic = new BusinessLogic();
var request = new RequestData();
switch (businessLogic.DecideWhatToDo(request))
{
case SelectCustomer select:
Console.WriteLine("You should select one of the existing customers");
break;
case CreateNewCustomer createNew:
Console.WriteLine("You should create a new customer first");
break;
default:
throw new NotSupportedException();
}
}
这是我对如何返回业务逻辑做出的决策的第一个想法。
决策逻辑对我来说非常重要,所以我绝对希望将它放在一个单独的类中,并使用许多不同的测试用例对其进行单元测试。
但不知何故,我不确定开关盒。这类问题有更好的模式吗?
解决方案
推荐阅读
- r - 创建百分比ggplot2图
- php - Processwire 无法编辑根页面
- eclipse - 是否可以将 java 类排除在测试范围之外?
- c++ - C++ 重载决议总是求助于别名 arg。超过其他人作为arg。对所有人有效
- c++ - 如何让 gmock 将所有警告/失败视为错误?
- botframework - 如何在 botframework oauth 中使用多个资源 url?
- typo3 - TYPO3:如何在打字稿中访问 slug url 的 GET/POST 参数?
- sql-server - SlashDB 和 Azure SQL DB 的连接超时
- php - Laravel 控制器不会将参数传递给服务
- google-sheets - 为什么查询结果在一个单元格中?