WEB开发网
开发学院软件开发C语言 趣味编程:C#中Specification模式的实现 阅读

趣味编程:C#中Specification模式的实现

 2010-09-30 20:58:58 来源:WEB开发网   
核心提示: 一般来说,Specification模式则意味着实现这样一个接口:publicinterfaceISpecification<T>{boolIsSatisfiedBy(Tcandidate);ISpecification<T>And(ISpecification<T

趣味编程:C#中Specification模式的实现

一般来说,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); 
  } 
}

上一页  1 2 3 4  下一页

Tags:趣味 编程 Specification

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接