我有一个'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可能是一条糟糕的路线。
有没有我可以实现的设计模式来实现类似的东西?
可能会单独执行你的界面吗? –