2.18. 空对象模式(Null Object)
正常操作#
$user = User::find(1);
if( $user) // 跟if( $user == null) 一个效果的
$user->save();
.....后续代码
需要 if
判断是否为 null
, 才执行 save()
能不能省略 if
或者 自定义其他操作?
(大部分时候还得乖乖用 if
)
代码实现#
<?php
class User{
public static function first()
{
$res = false;
if( $res) //查询到数据就返回
return $res;
return new NullObject(); //查询不到返回NullObject类
}
}
class NullObject{
public function __call($name, $arguments)
{
// 什么操作都不做
}
}
$user = User::first();
$user->save();
推荐文章: