趣味编程:C#中Specification模式的实现
2010-09-30 20:58:58 来源:WEB开发网一般来说,Specification模式则意味着实现这样一个接口:
public interface ISpecification<T>
{
bool IsSatisfiedBy(T candidate);
ISpecification<T> And(ISpecification<T> other);
ISpecification<T> Or(ISpecification<T> other);
ISpecification<T> Not();
}
实现了ISpecification的对象则意味着是一个Specification,它可以通过与其他Specification对象的 And,Or或对自身的取反来生成新的逻辑。为了方便这些“组合逻辑”的开发,我们还会准备一个抽象的CompositeSpecification类:
public abstract class CompositeSpecification<T> : ISpecification<T>
{
public abstract bool IsSatisfiedBy(T candidate);
public ISpecification<T> And(ISpecification<T> other)
{
return new AndSpecification<T>(this, other);
}
public ISpecification<T> Or(ISpecification<T> other)
{
return new OrSpecification<T>(this, other);
}
public ISpecification<T> Not()
{
return new NotSpecification<T>(this);
}
}
Tags:趣味 编程 Specification
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接