我有一個'Validator'類需要做一些簡單的驗證。但是,有些情況下可能需要調用全部或只是一種方法。依賴於參數的可選驗證
用於驗證的接口被定義爲:
internal interface IBrandValidator
{
BrandInfo ValidateBrands();
}
類定義爲對象返回:
internal class BrandInfo
{
public Organisation Brand { get; set; }
public Client Client { get; set; }
public Location Location { get; set; }
public Language Language { get; set; }
}
實現該接口的類:
internal class ClientValidator : IBrandValidator
{
private readonly int? clientId;
private readonly int? locationId;
private readonly int? languageId;
public ClientValidator(int clientId, int? locationId, int? languageId)
{
this.clientId = clientId;
this.locationId = locationId;
this.languageId = languageId;
}
public BrandInfo ValidateBrandDimensions()
{
var brandInfo= new BrandInfo();
//Optional validation
if(client != null)
brandDimensions.Client = ValidateClient(clientId);
if(locationId != null)
brandDimensions.Location = ValidateLocation(locationId);
if(languageId != null)
brandDimensions.Language = ValidateLanguage(languageId);
return brandInfo;
}
}
我的問題是。評論'可選驗證'下的3種驗證方法。可能或可能不需要被調用。但是,可能還有一些事情需要在將來驗證,並且使用if語句的可空int可能是一條糟糕的路線。
有沒有我可以實現的設計模式來實現類似的東西?
可能會單獨執行你的界面嗎? –