传递方法,这是不良代码的标志吗?

时间:2015-07-23 10:48:16

标签: php refactoring

让我们设想一个类:

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()一起使用)。那没关系吗?

1 个答案:

答案 0 :(得分:1)

您的示例过于抽象,无法选择单个重构策略。

如果你是5.4或以上,你可以查看php traits

在您的情况下,我会将m4 m5 m6移至特征中。

尽管如此,如前所述,此时我无法考虑代码重用,因为它是一个非常抽象的例子。但是特征的一个优点是易于重用和更清晰的代码。希望它有所帮助。