让我们设想一个类:
class A
{
public function m1()
{
$this->m2();
$this->m3();
$this->m4();
}
private function m2()
{
}
private function m3()
{
}
private function m4()
{
$this->m5();
$this->m6();
}
private function m5()
{
}
private function m6()
{
}
}
我认为m1()
,m2()
,m3()
,m4()
没问题,但m5()
,m6()
应该在另一个类中,因为m5()
,m6()
仅适用于m5()
(并且只能与m4()
一起使用)。那没关系吗?
答案 0 :(得分:1)
您的示例过于抽象,无法选择单个重构策略。
如果你是5.4或以上,你可以查看php traits。
在您的情况下,我会将m4
m5
m6
移至特征中。
尽管如此,如前所述,此时我无法考虑代码重用,因为它是一个非常抽象的例子。但是特征的一个优点是易于重用和更清晰的代码。希望它有所帮助。