【问题标题】:Multitenancy and Code Repetition - How to avoid conditional overload by "composing" logic多租户和代码重复 - 如何通过“组合”逻辑避免条件过载
【发布时间】:2017-03-22 20:06:09
【问题描述】:

我有一个多租户应用程序,其中租户很少,每个租户都需要进行少量定制。

我发现我们的很多代码库都包含如下逻辑:

public async Task<Banana> PeelBanana(Banana banana)
    {
        if (_tenant == Tenant.A){
           NotifyMonkey();
        } else if (_tenant == Tenant.B){
           GetCoconut();
        }
        banana.FinishPeeling();
        return banana;
    }

是否有某种模式可以解决这种情况,我需要根据某些标准组合我的逻辑?

【问题讨论】:

    标签: c# asp.net architecture multi-tenant


    【解决方案1】:

    根据其他代码的组织结构,您可以使用如下代码:

    public async Task<Banana> PeelBanana(Banana banana)
    {
        _tenant.OnPeelBanana(banana);
        banana.FinishPeeling();
        return banana;
    }
    

    并使用Tenant 类的不同子类型。但这当然取决于像 NotifyMonkey 这样的函数可以移动到那里或从那里访问。

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 2019-06-17
      • 2010-10-13
      • 2019-02-19
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多