假設您擁有多租戶應用程序。一個Tenant
有各種屬性:針對租戶特定業務邏輯的C#體系結構/模式
public class Tenant{
public string TenantName {get; set;}
public string TenantUrl {get; set;}
}
這樣,當我服務層發送電子郵件,例如,我可以做到以下幾點:
SendEmail(Tenant.FromEmailAddress, recipientEmailAddress)
這對於性質效果很好。在我的業務邏輯許多地方,我遇到了必須考慮租戶特定行爲的情況。一個例子是網頁檢索照片:
public List<string> GetPhotoUrls(){
if(currentTenant == TenantA){
// logic to go off to retrieve from one third party
} else if (currentTenant == TenantB){
// totally different logic
} else... // one for each tenant
// do some stuff
// return stuff
}
GetPhotoUrls
是一個簡單的例子 - 但也有這樣的情況下,在我的業務邏輯的許多地方。我正在尋找一個簡單的模式,我可以定義和實施特定於租戶的邏輯。總體目標是在一個地方獲得所有特定於租戶的邏輯,因此租戶的創建和定義非常簡單。
我想開發者體驗到的線沿線閱讀:
public List<string> GetPhotoUrls(){
currentTenant.GetPhotoUrls(); // define this logic on the tenant object somehow
// do some stuff
// return stuff
}
什麼模式/構造可用來實現這一目標?
什麼似乎很奇怪的看看是你的租戶那裏獲取數據租戶是硬編碼的... –
我不認爲你的photourl邏輯是租戶特定的,而不是照片來源特定的,所以每個租戶應該有一個你分配的photoprovider,這取決於它是什麼類型的租戶? –
@JanneMatikainen - 這是一個不好的例子 - 邏輯確實不同。 – SB2055