首页 > Web开发 > 详细

常用的三种设计模式 PHP代码

时间:2018-07-06 18:53:53      阅读:201      评论:0      收藏:0      [点我收藏+]

  

// 工厂模式

interface Iuser
{
    public function getUserName();
}


class UserFactory
{
    static public function load($className)
    {
        return new strtolower($className);
    }

    static public function create($className)
    {
        return new strtolower($className);
    }
}

class User implements Iuser
{
    public function getUserName()
    {
        return ‘jack‘;
    }
}

UserFactory::create(‘User‘)->getUserName();


// 单例模式

class Singleton
{
    static public function getInstance()
    {
        static $obj = null;

        if($obj == null) {
            return new Singleton();
        }
        return $obj;
    }

    public function getUserName()
    {
        return ‘jack‘;
    }
}

Singleton::getInstance()->getUserName();


// 观察者模式

interface Observe
{
    public function getUserName();
}

class User
{
    private $servs = [];
    public function register($obj)
    {
        array_push($servs, $obj);
        return $this;
    }

    public function triggle()
    {
        if($this->servs) {
            foreach($this->servs as $key => $value) {
                $value->getUserName();
            }
        }
    }
}

Class MyUser extends User implements Observ
{
    public function getUserName()
    {
        return ‘jack‘;
    }
}


(new User())->register(new MyUser)->triggle();

 

常用的三种设计模式 PHP代码

原文:https://www.cnblogs.com/gpfeisoft/p/9275128.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!