以下のクラス 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;}
}