コード例 #1
0
        public override bool isSatisfiedBy(Product product)
        {
            IEnumerator <Spec> specifications = this.getSpecs().GetEnumerator();
            bool satisfiesAllSpecs            = true;

            while (specifications.MoveNext())
            {
                Spec productSpec = specifications.Current;
                satisfiesAllSpecs &= productSpec.isSatisfiedBy(product);
            }

            return(satisfiesAllSpecs);
        }
コード例 #2
0
        public List <Product> selectBy(Spec spec)
        {
            List <Product> foundProducts = new List <Product>();

            List <Product> .Enumerator products = iterator();
            while (products.MoveNext())
            {
                Product product = products.Current;
                if (spec.isSatisfiedBy(product))
                {
                    foundProducts.Add(product);
                }
            }

            return(foundProducts);
        }