方法调用的前置条件,应该在调用前判断还是在方法里判断
方法外部判断
if ($user->is_human) {
ActionService::sleep($user);
}
or
内部判断
class ActionService {
public static sleep($user) {
if (!$user->is_human) {
return;
}
// 执行……
}
}
有规范吗,感觉写在外部更清晰,知道什么条件下会走这个方法。
感觉方法内部一定要做过滤,这样用起来没有心智负担,那如果外部也判断是不是就重复了;但是外部不判断代码简洁了。
求助大佬们,先谢谢啦
看这个判断条件属于哪个业务。举个例子,如果
sleep
这个方法要执行就一定要判断$user->is_human
,那就把判断写在方法里(后者)。如果sleep
之前要判断的东西不一定,$user->is_human
只是要判断的可能条件其中之一,这样就写在外边(前者)。