2016-11-09 6 views
-1

私は非常に僅かなテナントしか持たず、テナントごとにマイナーなカスタマイズが必要なマルチテナントアプリケーションを持っています。マルチテナントとコードの繰り返し - 論理を「構成する」ことによって条件付き過負荷を回避する方法

私は、私たちのコードベースの多くは、以下のようなロジックが含まれていることを発見しています:

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

は私が構成する必要があり、このシナリオに対処し、パターンのいくつかの種類、私のロジックはベースがありますいくつかの基準で?

答えて

1

他のコードの組織によって、あなたのようなもの使用することができます

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

をしてTenantクラスの異なるサブタイプを使用します。もちろん、NotifyMonkeyのような機能がそこに移動できたり、そこからアクセスできるかどうかに依存します。

関連する問題