// 工厂模式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