工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换...
工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换类,修改配置等。
<?php // 单例模式 class Site{ // 属性 public $site; // 本类的静态实例 public static $instance = null; // 禁用构造函数 private function __construct(){} // 获取本类的唯一实例 public static function getInstance($site='demo'){ if(!self::$instance instanceof self){ self::$instance = new self(); } return self::$instance; } public function A($n='demo'){ return $n; } } // 工厂模式 class Factory{ // 创建指定类的实例 public static function create($name){ return $name::getInstance(); } } // 对象注册树 // 1.注册:set(),把对象挂到树上 // 2.获取:get(),把对象取下来 // 3.销毁:_unset(),把对象销毁 class Register{ // 对象池属性 public static $objs = []; // 生成对象并上树 public static function set($alias,$obj){ self::$objs[$alias] = $obj; } // 取下对象 public static function get($alias){ return self::$objs[$alias]; } // public static function _unset($alias){ unset(self::$objs[$alias]); } } Register::set('site',Factory::create('Site')); $obj = Register::get('site'); var_dump($obj->A('1234'));