【发布时间】:2019-11-19 16:18:47
【问题描述】:
我有以下代码
public function create(){
return self::checkQuantity();
return self::checkSameLocation();
return self::someAnotherFunction();
return self::someMoreFunction();
..
..
..
}
public function checkQuantity(){
if(someCondition){
return [foo,bar];
}
}
public function checkSameLocation(){
if(someCondition){
return [foo,bar];
}
}
我想返回 create() 内部的函数,前提是它内部的函数返回其他内容,继续执行 create() 函数。
基于示例:
-
create()被调用 - 如果
checkQuantity没有返回任何内容,则继续使用checkSameLocation()而不返回checkQuantity()函数
注意:有时 create() 内部可能有多个函数调用,我想避免使用 if statement 检查。
【问题讨论】:
-
不做 if 检查,因为如果有 10 个函数调用会弄得一团糟。
-
如果没有
if检查,您将无法检查如果第一个函数没有返回任何内容 -
我不确定你的函数返回什么,这些函数是否包含在一个类中?您无法检查函数是否没有返回任何内容,因为它总是返回 null。
-
就OOD而言,我想一个合适的解决方案是chain of responsibility
-
@AndriiFilenko 谢谢,我会调查的。