首页 > 解决方案 > 封装业务决策 - 如何返回它们

问题描述

假设我们有以下要求:

我的目标是,我不想在用户界面的 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();  
    }
}

这是我对如何返回业务逻辑做出的决策的第一个想法。

决策逻辑对我来说非常重要,所以我绝对希望将它放在一个单独的类中,并使用许多不同的测试用例对其进行单元测试。

但不知何故,我不确定开关盒。这类问题有更好的模式吗?

标签: c#business-logic

解决方案


推荐阅读