您好我正在使用存储库模式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?
感谢
答案 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);