将类对象作为成员而不是继承该类

时间:2014-08-13 13:40:12

标签: php class oop object inheritance

我正在开展一个项目,其中我有Order class代表客户的订单。

它具有管理订单(如更改状态)和获取订单详情(如发票明细)的功能

我正在创建一系列将订单转移给各个合作伙伴的课程。

所以我有类似的课程:

class PartnerXOrder extends Order
class PartnerYOrder extends Order

在同行评审期间,一位同事建议我不应该延长秩序,而应将其作为集体成员:

Class PartnerXOrder
{
   private $orderObj;
   function __construct()
   {
      $this->orderObj = new Order();
   } 
}

虽然我们确实讨论了一下,但我不太明白这种方法在扩展课程方面有什么优势。显然,一种情况是合作伙伴类在未来需要扩展另一个类 - 但这根本不可能基于我们当前的架构。

任何人都可以对此有所了解吗? - 或者我的同事错了吗?

1 个答案:

答案 0 :(得分:2)

  

我正在创建一系列将订单转移给我们各个合作伙伴的课程。

你的同事是对的。 基本上,回答问题我的班级应该继承这个吗?,问问自己:我的班级YX吗?(其中{{ 1}}是您父类的名称。)

在您的情况下,XPartnerXOrder吗?正如您所说,不是:其目的是将Order转移到Order