PHP OOP结构问题,模拟多重继承

Gab*_*mon 4 php oop multiple-inheritance

我有一个有多种产品类型的电子商店.我会想到以下结构

Cart_Item
-- Cart_Product
-- Cart_Download

Order_Item extends Cart_Item
-- Order_Product
-- Order_Download
Run Code Online (Sandbox Code Playgroud)

问题是我想要Order_Product扩展Order_Item和Cart_Product.这是因为它需要Order_Item的通用方法(从订单而不是产品获得价格),还需要来自Cart_Product的方法(运费计算)

我知道php不支持多重继承,我在徘徊是什么是最简洁的模仿方式.

现在我有Order_Product扩展Cart_Product来自Order_Item的重复代码在Order_Product和Order_Download.

Gor*_*don 12

使用Interfaces并手动或通过Strategies实现方法.或者使用Composition而不是Inheritance,这意味着你让Order_Producta Order_Item和a一起使用Cart_Product.

在旁注:您还可以考虑将"运费计算"放入其自己的Service类中,您可以将适当的Product实例传递给它.