我有外部库的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
(由于客户限制),
答案 0 :(得分:0)
如果A2和B2 完全相同,那么将其转换为自己的类,而不是让它扩展现有的类。然后,您可以将该类的对象传递给实际需要使用它的任何其他对象。
另请参阅:Strategy Pattern
答案 1 :(得分:0)
从另一个方向看这个似乎是个好主意。 A类和B类具有不同的代码,但A2和B2具有相同的代码,因此我们将该代码块称为C.您需要的是A2和B2类,其中A2具有A和C的功能,以及B2具有B和C的功能。你能使C成为A和B的超类吗?然后你直接使用这两个类,而不重复代码。