여러 개의 유효성 검사 엔티티를 수집 할 수 있으며 모두 동일한 인터페이스를 공유하고 싶습니다.Multipe Strategy Design Pattern
public interface Ivalidateable
{
bool IsValid(IValidateParam param);
}
public interface IValidateParam
{
}
public abstract EmployeeStrategy: Ivalidateable
{
public abstract bool IsValid(User user);
}
public abstract SpreadStrategy: IValidateable
{
public abstract bool IsAvlid(Campaign campaign);
}
public class User: IValidateParam
{}
public class Campaign: IValidateParam
{}
public EmployeeTypeStragtegy: EmployeeStrategy, IValidateable
{
public bool IsValid(User user)
{
if (new[]{'e',a','b}.Contains(user.userId.first().toString()))
return true;
return false;
}
}
public TrailSpreadStrategy: SpreadStrategy, IValidateable
{
public bool IsValid(Campaign campaign)
{
//logic goes here
}
}
public EvenpreadStrategy: SpreadStrategy:, IValidateable
{
public bool IsValid(Campaign campaign)
{
//logic goes here
}
}
public class ValidationFactory
{
private static List<IValidateable> stragtegies;
static ValidationFactory
{
strategies = new List<IValidateable>();
strategies.Add(new EmployeeTypeStragtegy());
strategies.Add(new TrailSpreadStrategy());
}
public bool IsValid(//Need to pass User/Campaign)
{
//what do I do here?
}
}
내가 루프 전략을 수 있고 IsValid를 확인할 수 있도록 사용자/캠페인을 통과하는 가장 좋은 방법은 무엇입니까 : 이것은 내가 생각 해낸 무엇인가?
캠페인 유효성 확인을위한 두 가지 전략이 모두 실행되거나 올바른 기준을 선택하기위한 몇 가지 기준이 있습니까? –
각 유형 (사용자/캠페인) 중 하나만있을 것입니다 ... 둘 이상의 선언에 대한 아이디어를 표시하고 싶습니다. –