下面的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;}
}
其實不,它沒用。請在您的描述中添加更多細節(如何操作,而不是如何操作),並且包含一些代碼,因爲原始的海報會盡力實現。 –
對不起。我的錯。用戶「不安」在幾分鐘前添加了上述模式的示例代碼。 – Brijesh