欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 设计模式-过滤器模式

设计模式-过滤器模式

2024/10/25 12:19:32 来源:https://blog.csdn.net/qq_25699299/article/details/140707131  浏览:    关键词:设计模式-过滤器模式

在C#中实现一个简单的过滤器模式示例,我们可以创建一个ICriteria接口和一个实现了这个接口的Criteria类。以下是一个简单的示例,它演示了如何使用过滤器模式来过滤一个产品集合。

using System.Collections.Generic;// 定义产品类
public class Product
{public string Name { get; set; }public double Price { get; set; }
}// 定义过滤条件接口
public interface ICriteria
{List<Product> Filter(List<Product> products);
}// 实现具体的过滤条件
public class ProductPriceCriteria : ICriteria
{private double _price;public ProductPriceCriteria(double price){_price = price;}public List<Product> Filter(List<Product> products){List<Product> filteredProducts = new List<Product>();foreach (var product in products){if (product.Price <= _price){filteredProducts.Add(product);}}return filteredProducts;}
}// 使用示例
public class Program
{public static void Main(string[] args){List<Product> products = new List<Product>{new Product { Name = "ProductA", Price = 100 },new Product { Name = "ProductB", Price = 200 },new Product { Name = "ProductC", Price = 150 },new Product { Name = "ProductD", Price = 250 }};ICriteria criteria = new ProductPriceCriteria(200);List<Product> filteredProducts = criteria.Filter(products);foreach (var product in filteredProducts){System.Console.WriteLine($"Name: {product.Name}, Price: {product.Price}");}}
}

在这个例子中,我们定义了一个Product类,它有一个名称和价格。接着,我们定义了一个ICriteria接口,这个接口有一个Filter方法,该方法接收一个Product列表并返回一个经过过滤的列表。ProductPriceCriteria类实现了这个接口,并且提供了一个根据价格过滤产品的具体条件。

Main方法中,我们创建了一个产品列表和一个过滤条件实例,然后通过调用Filter方法得到符合条件的产品列表,并打印出这些产品的信息。这个例子展示了如何使用过滤器模式来根据不同的条件对对象集合进行过滤。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com