1. 程式人生 > >常用的三種設計模式 PHP代碼

常用的三種設計模式 PHP代碼

static bsp urn php代碼 ati for val pri single

  

// 工廠模式

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代碼