下面的 ProductService 类从数据库中获取基于不同过滤器(例如按日期、国家/地区等)的产品。ProductsService 不遵循 OCP,因为添加新过滤器(如按价格获取产品)需要更改 ProductsService 代码。如何修复?任何建议/意见都会非常有帮助。
public class ProductsService : IProductsService
{
public FilteredProducts GetProductsByDate(DateTime startDate, DateTime EndDate)
{
//.....
}
public FilteredProducts GetProductsByCountry(string country)
{
//.....
}
public FilteredProducts GetProductsByCity(string city)
{
//.....
}
}
public class FilteredProducts
{
public IEnumerable<Product> Products{set;get;}
public int uniqueProducts { set; get; }
}
public class Product
{
public int ID{set;get;}
public string Name{set;get;}
public decimal Cost{set;get;}
}