PHP:相同的功能设计模式

时间:2018-01-25 16:23:04

标签: php design-patterns

您好我正在使用存储库模式PHP并从控制器或服务我需要调用1后1到不同的存储库功能

$ lists是来自DB的列表对象列表。存储库模式是示例存储库模式

喜欢:

        $lists = $this->_listRepo->findAllX($this->config["same_config_param"]);
        $arrayToUpdate = $this->someProcess($lists , $statusA);
        $this->updateDBStatus($arrayToUpdate , $statusA);


        $lists = $this->_listRepo->findAllB($this->config["same_config_param"]);
        $arrayToUpdate = $this->someProcess($lists , $statusB);
        $this->updateDBStatus($arrayToUpdate , $statusB);


        $lists = $this->_listRepo->findAnotherCase($this->config["same_config_param"]);
        $arrayToUpdate = $this->someProcess($lists , $statusC);
        $this->updateDBStatus($arrayToUpdate , $statusC);

是否有一种设计模式可以区别对待它?也许我应该使用FACADE?

感谢

1 个答案:

答案 0 :(得分:1)

这些代码段之间的唯一区别似乎是您调用的方法和$status变量。只需使用以下参数创建一个函数:

function doThatThing($method, $status) {
    $lists = $this->_listRepo->$method($this->config["same_config_param"]);
    $arrayToUpdate = $this->someProcess($lists, $status);
    $this->updateDBStatus($arrayToUpdate, $status);
}

并称之为:

$this->doThatThing('findAllX', $statusA);
$this->doThatThing('findAllB', $statusB);
$this->doThatThing('findAnotherCase', $statusC);