课程笔记
课程/PHP/后端开发
大话PHP设计模式
介绍
章节
问答
笔记
technoart
2019-02-01
注册树模式
截图
0赞 · 0采集
BurningIce
2018-08-05
注册模式: 注册类,可以用于全局调用
工厂模式:用于创建对象。好处:如果被调用的对象需要进行修改,那么使用工厂模式便只修改一个地方就好
单例模式:不重复new 对象
2赞 · 0采集
从未拥有何谈失去
2018-02-19
注册树模式 将实例化的对象存储在树上(即一个数组变量中),每次使用不必再 使用单例模式判断,直接调取注册树中存储的对象即可。
截图
1赞 · 1采集
qq_简单就好_2
2018-01-22
单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。 那么注册树模式想解决什么问题呢? 在考虑这个问题前,我们还是有必要考虑下前两种模式目前面临的局限。 首先,单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在。存在则返回对象,不存在则创建对象并返回。 每次创建实例对象都要存在这么一层判断。 工厂模式更多考虑的是扩展维护的问题。 总的来说,单例模式和工厂模式可以产生更加合理的对象。怎么方便调用这些对象呢?而且在项目内如此建立的对象好像散兵游勇一样,不便统筹管理安排啊。因而,注册树模式应运而生。不管你是通过单例模式还是工厂模式还是二者结合生成的对象,都统统给我“插到”注册树上。我用某个对象的时候,直接从注册树上取一下就好。这和我们使用全局变量一样的方便实用。 而且注册树模式还为其他模式提供了一种非常好的想法
2赞 · 6采集
melodymy
2018-01-02
注册器模式:已经创建好对象后,下次使用直接取,将一些对象注册到全局树上面,可以用来在任何地方被访问。 一般只提供一个set 和 unset 两种方法,需要一个静态的非公开属性和一个取得静态属性的静态方法
0赞 · 0采集
Y言十年
2017-07-31
注册树模式
截图
0赞 · 0采集
qu12
2017-02-23
注册模式 register类 属性$objects 保存某个实例化类
截图
0赞 · 0采集
慕粉0118
2017-02-15
注册器模式:已经创建好对象后,下次使用直接取,将一些对象注册到全局树上面,可以用来在任何地方被访问。 一般只提供一个set 和 unset 两种方法,需要一个静态的非公开属性和一个取得静态属性的静态方法
0赞 · 0采集
idolook
2016-12-01
register.php 文件闪的太快,截屏保存
截图
0赞 · 0采集
灰原瞳
2016-11-28
突然想到之前自己对CI的扩展 class H_Model extends CI_Model{ static private $_cache_models; public function __construct(){ parent::__construct(); } final protected function get_model($model){ $_cache_name = strtolower($model); if(!isset(self::$_cache_models[$_cache_name]) || !(self::$_cache_models[$_cache_name] instanceof $model) ){ self::$_cache_models[$_cache_name] = new $model; } return self::$_cache_models[$_cache_name]; } } 单例、工厂、注册树都用上了。。。
0赞 · 1采集
异常代码
2016-11-13
单例模式,业务环境来说,一个功能只要一个对象的场合,使用单类模式,将对象放入全局或者静态句柄都可
0赞 · 0采集
john213
2016-09-16
注册树模式
截图
0赞 · 3采集
qq_谦业_0
2016-08-18
这节有问题
0赞 · 0采集
Alan_Ma
2016-05-23
注册树模式写法
截图
0赞 · 1采集
glenhappy
2016-04-16
工厂方法里面,将需要的对象注册到注册树上面,然后该工厂方法只需要调用一次(可以放到系统环境初始化这样的地方),以后需要调用该对象的时候直接从注册树上面取出来即可,不需要再调用工厂方法和单例模式。
截图
0赞 · 1采集
文刀走云
2016-02-21
针对实例化模型的单例模式和注册模式可以写在一起,我是写在/IMooc/DataBase里面的: <?php namespace IMooc; final class DataBase{ private static $model = array(); private function __construct($name){ echo "我连接了数据库".$name.",生成了模型".$name."<br>"; } public static function getIns($name){ if(@self::$model[$name]){ return self::$model; } self::$model[$name] = new self($name); return self::$model[$name]; } function where($where){ echo $where." "; return $this; } function order($order){ echo $order." "; return $this; } function limit($limit){ echo $limit." "; return $this; } }
0赞 · 0采集
游客2018
2016-01-03
注册器模式:Register.php,用来将一些对象注册到全局的注册树上,可以在任何地方访问。set():将对象隐射到全局树上,_unset():从树上移除。get():去注册到树上的对象。在框架初始化的时候,会做注册器的初始化操作,然后可以在任何地方去访问注册器的方法。 namespace IMooc; class Register{ protected static $objects; static function set($alias,$object){ self::$objects[$alias] = $object; } static function get($name){ return self::$objects[$name]; } function _unset($alias){ unset(self::$objects[$alias]); } } 在工厂模式写下 class Factory{ static function createDatabase(){ $db =Database::getInstance(); Register::set('db1', $db); return $db; } } 在index.php $db = IMooc\Factory::createDatabase(); $db1 = \IMooc\Register::get('db1'); var_dump($db); var_dump($db1);
0赞 · 2采集
冯俊辉
2015-12-21
注册树模式,把已经new了的类,放在一个静态数组里,以后就可以通过这个类的get方法获取,感觉有点像是把所有的类放在一个地方
0赞 · 0采集
LHack
2015-08-12
注册器模式:用来将一些对象注册到一个全局的树上,供全局访问 class Register{ protected static $objects function set($alias,$object){ self::$objects[$alias]=$object; } static function get($name){ return self::$objects[$name]; } function _unset($alias){ unset(self::$onjects[$alias]); } } $alias表示别名,自己设定 在工厂模式中添加 Register::set('db1',$db); 其他任何地方调用只需要调用注册器读取即可 Register::$objects['db1'];
截图
0赞 · 8采集
hanashin
2015-07-08
【PHP】【注册树模式】 protected static $objects;//注册树 static function set($alias,$object){ //注册对象。Register::set('db1',$db);(Register为类名) self::$object[$alias]=$object; } static function get($name){ //获得对象。$db=Register::get('db1'); return self::$objects[$name]; } function _unset($alias){ //释放对象 unset(self::$object[$alias]); }
0赞 · 0采集
domico
2015-06-18
注册器模式: namespace IMooc; class Register { protected static $objects; //注册。如Register::set('db1',$db); function set($alias,$object) { self::$object[$alias]=$object; } //取值。如$db=IMooc\Register::get('db1'); static function get($name) { return self::$object[$alias]; } //移除 function _unset($alias) { unset(self::$object[$alias]); } }
0赞 · 0采集
Minersyal
2015-06-12
注册树模式就是使用数组结构来存取对象
0赞 · 3采集
陈校军
2015-05-17
工厂模式的特征有一个统一生成对象的入口; 单例模式的特征是对象不可外部实例并且只能实例化一次。 注册树模式的特征是对象不用在通过类创建,具有全局对象树类。
3赞 · 3采集
陈诗烁
2015-04-29
注册器模式:Register.php,用来将一些对象注册到全局的注册树上,可以在任何地方访问。set():将对象隐射到全局树上,_unset():从树上移除。get():去注册到树上的对象 namespace IMooc; class Register{ protected static $objects; static function set($alias,$object){ self::$objects[$alias] = $object; } static function get($name){ return self::$objects[$name]; } function _unset($alias){ unset(self::$objects[$alias]); } } 在工厂模式写下 class Factory{ static function createDatabase(){ $db =Database::getInstance(); Register::set('db1', $db); return $db; } } 在index.php $db = IMooc\Factory::createDatabase(); $db1 = \IMooc\Register::get('db1'); var_dump($db); var_dump($db1);
1赞 · 3采集
wxp_Ann
2015-04-13
注册器模式:Register.php,用来将一些对象注册到全局的注册树上,可以在任何地方访问。set():将对象隐射到全局树上,_unset():从树上移除。get():去注册到树上的对象。
截图
2赞 · 2采集
小邱邱
2015-03-23
实例化对象
截图
0赞 · 0采集
小邱邱
2015-03-23
将数据库映射到全局树上
截图
0赞 · 0采集
小邱邱
2015-03-23
注册器模式
截图
0赞 · 0采集
小邱邱
2015-03-23
注册器模式
截图
0赞 · 0采集
挎耳机的猫
2015-02-02
工厂模式的特征有一个统一生成对象的入口; 单例模式的特征是对象不可外部实例并且只能实例化一次。 注册树模式的特征是对象不用在通过类创建,具有全局对象树类。
1赞 · 4采集
数据加载中...