我有一个多租户应用程序,租户很少,每个租户需要一些小的定制。
我发现很多代码库都包含如下逻辑:
public async Task<Banana> PeelBanana(Banana banana)
{
if (_tenant == Tenant.A){
NotifyMonkey();
} else if (_tenant == Tenant.B){
GetCoconut();
}
banana.FinishPeeling();
return banana;
}
是否有某种模式可以解决这种情况,我需要根据某些标准撰写我的逻辑?
答案 0 :(得分:1)
根据其他代码的组织,您可以使用以下内容:
public async Task<Banana> PeelBanana(Banana banana)
{
_tenant.OnPeelBanana(banana);
banana.FinishPeeling();
return banana;
}
并使用Tenant
类的不同子类型。但当然这取决于像NotifyMonkey
这样的函数可以移动到那里或可以从那里访问。