1

我有外部库的 A、B 类,我的 A2 类扩展 A,B2 扩展 B。A2 类和 B2 类的代码完全相同。我可以分享吗?代码做一些工作并调用父函数:

class A2 extends A
{
  function func1($var1, $var2,...)
  {
     ...
     ... Do some job
     ...
     return parent::func1($var1, $var2,...);
  }
  function func2($var1, $var2,...)
  {
     ...
     ... Do some job
     ...
     return parent::func2($var1, $var2,...);
  }
  ...
  ...
  ...
}

class B2 extends B
{
  function func1($var1, $var2,...)
  {
     ...
     ... Do some job
     ...
     return parent::func1($var1, $var2,...);
  }
  function func2($var1, $var2,...)
  {
     ...
     ... Do some job
     ...
     return parent::func2($var1, $var2,...);
  }
  ...
  ...
  ...
}

我坚持使用 PHP 5.2.x 并且allow_url_include=off(由于客户限制),

4

2 回答 2

0

如果 A2 和 B2完全相同,则将其转换为自己的类,而不是让它扩展现有的类。然后,您可以将该类的对象传递给实际需要使用它的任何其他对象。

另请参阅:策略模式

于 2012-10-31T14:21:07.447 回答
0

从另一个方向来看这似乎是一个好主意。A 类和 B 类具有不同的代码,但 A2 和 B2 具有相同的代码,因此我们将那段代码称为 C。您需要的是 A2 和 B2 类,其中 A2 具有 A 和 C 的功能,并且B2 具有 B 和 C 的功能。你能让 C 成为 A 和 B 的超类吗?然后,您只需直接使用这两个类,无需重复代码。

于 2012-10-31T14:36:16.573 回答