public IEnumerable <Product> Filter(IEnumerable <Product> items, Ispecification <Product> spec)
 {
     foreach (var p in items)
     {
         if (spec.IsSatisfied(p))
         {
             yield return(p);
         }
     }
 }
 public AndSpecification(Ispecification <T> first, Ispecification <T> second)
 {
     this.first  = first;
     this.second = second;
 }