【问题标题】:PHP OOP structure problem, simulate multiple inheritancePHP OOP结构问题,模拟多重继承
【发布时间】:2011-04-22 18:58:36
【问题描述】:

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

Cart_Item
-- Cart_Product
-- Cart_Download

Order_Item extends Cart_Item
-- Order_Product
-- Order_Download

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

我知道 php 不支持多重继承,我在徘徊什么是最干净的方式来模拟这个。

现在,我在 Order_Product 和 Order_Download 中的 Order_Item 中有 Order_Product 扩展 Cart_Product 重复代码。

【问题讨论】:

  • @Gordon 谢谢你的回答,我用了作文。谢谢

标签: php oop multiple-inheritance


【解决方案1】:

使用Interfaces 并手动或通过Strategies 实现方法。或者使用Composition 而不是继承,这意味着你让Order_Product 有一个Order_Item 和一个Cart_Product

附带说明:您还可以考虑在它自己的 Service 类中进行“运输计算”,您可以将适当的 Product 实例传递给该类。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 2023-03-28
  • 1970-01-01
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多