PHP设计模式——无用的空对象模式

    xiaoxiao2021-03-25  66

    WEB开发笔记 www.chhua.com 每日练习 PHP设计模式——无用的空对象模式

    哎哟,今天发现一个PHP中的设计模式:空对象模式,下面说说我的想法。 真的好鸡肋,在百度和GG 上搜了很久空对象模式,均没有找到好的回答,我这种不弄个明白不罢休的破脾气,让我纠结了好久。最终发现了,主要是节省部分IF判断的语句。这种方法称之为“模式”真的有点小题大作。

    下面用代码来演示一下,在编程中的应用。

    1 2 3 4 5 6 7 8 9 10 11 //www.chhua.com 建立一个类 class user { static function create() { return null; } } $user=user::create(); $user->login(); /*以上方法在运行的时候肯定就会报错, * Fatal error: Call to a member function login() on a non-object in http://www.chhua.com/test.php on line 18 */

    为了避免报错,我就就需要做以下处理

    1 2 3 if (is_object($user)){ $user->login(); }

    为了不使用IF条件的判断,我们就用以下的方法,也就是传说中的空对象模式

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 interface nullinterface {//空对象接口 public function login(); }   class nullUser implements nullinterface {//空对象实现 public function login(){} }   class user { static function create() { return new nullUser();//返回空对象 } } $user=user::create(); $user->login();//不再报错

    以上一个简单的实例说明了空对象模式的说明实例,大家可以自己扩展,自我感觉除了增强代码的健壮性之外没什么大的用处,希望不太明白的人也不要在这上面纠结了,没有意义。

    自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

    转载请注明原文地址: https://ju.6miu.com/read-39695.html

    最新回复(0)