技术卡片 - 不要使用 else
这条规则带有争议性。实际上, if
- else
的代码结构本身就很直观,只是说减少 else
的使用可以让代码显得更加的简洁。以下几个方法可以减少 else
的使用
提前返回
protected function getStoredRole($role)
{
if (is_numeric($role)) {
return self::find($role);
}
if (is_string($role)) {
return self::where('name', $role)->first();
}
return $role;
}
抛出异常
public function toJson($options = 0)
{
$json = json_encode($this->jsonSerialize(), $options);
if (JSON_ERROR_NONE !== json_last_error()) {
throw JsonEncodingException::forModel($this, json_last_error_msg());
}
return $json;
}
手工捕获异常
function inverse($x) {
if (!$x) {
throw new Exception('除数为 0');
}
return 1/$x;
}
try {
inverse(0) . "\n";
} catch (Exception $e) {
return $e->getMessage();
}
使用工厂方法重构业务逻辑
function singUp($subscription)
{
if($subscription == 'monthly')
{
$this->createMonthlySubscription();
}
else if ($subscription == 'forever')
{
$this->createForeverSubscription()
}
}
重构
function singUp(Subscription $subscription)
{
$subscription->create();
}
// 工厂方法
function getSubscriptionType($type)
{
if($type == ' forever')
{
return new ForeverSubscription;
}
return new MonthlySubscription;
}
$subscription = getSubscriptionType($type);
signUp($subscription)
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: