对于使用相同代码的两个函数,最好的方法是什么

时间:2013-10-31 13:54:18

标签: php

我有两个功能,它们目前正在做同样的事情。将来,我很可能需要为一个功能添加更多功能,但目前它们的功能相同。

private function GetAnswerId( $value, $fieldId )
{
    // Code goes here, returns something      
}

private function GetQuestionId( $value, $fieldId ); // Currently same code as GetAnswerId... But might change later!

是否有一些聪明的方式与未来的开发人员沟通,好吧这个功能目前是相同的实现,但将来它不会..我不想只是复制GetAnswerId中的代码,因为那是干涸的。但我也不想使用相同的功能,因为这不是前瞻性思维。

虚拟?抽象?类似的东西:S

3 个答案:

答案 0 :(得分:1)

在第二个函数中调用第一个函数并从那里展开:

private function GetQuestionId( $value, $fieldId )
{
     GetAnswerId( $value, $fieldId );

     // extra code
}

答案 1 :(得分:1)

将您的重复功能移至基类:

class BaseClass
{
    protected function getId($value, $fieldId) {
        ...
    }
}

使用一种方法getId()代替GetAnswerId()GetQuestionId()。稍后,如果您要决定问题ID的更改功能,只需将新方法添加到当前类:

class CurrentClass extend BaseClass
{
    protected function GetQuestionId($value, $fieldId) {
        ...
    }
}

答案 2 :(得分:0)

在您的情况下,我会向您的函数添加一些文档,说明计划很快改变其行为并调用此函数并返回GetAnswerId的值。

private function GetQuestionId($value, $fieldId)
{
    return $this->GetAnswerId($value, $fieldId);
}