我有一个包含多种产品类型的电子商店。我会想到以下结构
Cart_Item
-- Cart_Product
-- Cart_Download
Order_Item extends Cart_Item
-- Order_Product
-- Order_Download
问题是我想要Order_Product扩展Order_Item和Cart_Product。 这是因为它需要Order_Item的通用方法(从订单而不是从产品中获取价格),还需要来自Cart_Product(发货计算)的方法
我知道php不支持多重继承,我在徘徊是什么是最简洁的模仿方式。
现在我有Order_Product扩展Cart_Produ来自Order_Item的重复代码在Order_Product和Order_Download。
答案 0 :(得分:12)
使用Interfaces并手动或通过Strategies实施这些方法。或者使用Composition代替继承,这意味着您让Order_Product
拥有Order_Item
和Cart_Product
。
在旁注中:您还可以考虑将“运费计算”纳入其自己的Service类,您可以将适当的Product实例传递给。