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();

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~