PHP之注册树模式
来源:互联网 发布:四年级上册优化的答案 编辑:程序博客网 时间:2024/05/17 20:02
PHP注册树模式主要用于创建对象的时候将我们的对象与相应的变量进行绑定,其实就相当于我们平常说的IOC,DI,例如我们的YII2框架的IOC就是使用了注册树模式进行对象管理的,最大好处就是将我们创建对象的步骤交给容器去管理,降低我们依赖关系模块的耦合度,方便代码的管理,结构更加清晰。
准备代码片段,结构如下:
Object.php文件:
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:57 */namespace Factory;class Object { private static $instance; /** * 单例模式 */ private function __construct(){ } public static function getInstance(){ if(self::$instance){ return self::$instance; } self::$instance = new self(); return self::$instance; } public function say(){ echo __METHOD__; }}ObjectFactory.php文件:
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:56 */namespace Factory;class ObjectFactory { /** * 工厂模式 */ public static function createObject(){ $obj = Object::getInstance(); \Register\Container::set('object',$obj); }}Container.php文件:
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/3/11 * Time: 15:10 */namespace Register;class Container { //存放对象的数组 protected static $objects; /** * 存放一个对象 * @param $alias * * @param $object */ public static function set($alias,$object){ self::$objects[$alias] = $object; } /** * 获取一个对象 * @param $alias * @return mixed */ public static function get($alias){ return self::$objects[$alias]; } /** * 销毁一个对象 * @param $alias */ public static function _unset($alias){ unset(self::$objects[$alias]); }}
autoload.php文件:
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 12:13 */spl_autoload_register('autoload');function autoload($className){ $classFile = ROOT.'/'.str_replace('\\','/',$className).'.php'; include $classFile;}
index.php文件:
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:55 */ define('ROOT',__DIR__); require 'autoload.php'; Factory\ObjectFactory::createObject(); $obj = Register\Container::get('object'); $obj->say();使用注册树模式,我们创建对象的时候,将这件事情交给我们的容器去做,使得我们有依赖关系的模块耦合度降低,整个系统代码的耦合性大大降低,项目维护更加方便,项目的结构也更加清晰。
1 0
- PHP之注册树模式
- php模式设计之 注册树模式
- 《PHP设计模式》之 注册树模式
- PHP设计模式之-----注册树模式
- php模式设计之 注册树模式
- php 注册树模式
- PHP 注册树模式
- PHP常见的设计模式之:注册树模式
- PHP设计模式之注册模式
- 4.php 注册树模式
- 设计模式之注册器模式(PHP实现)
- php核心学习-设计模式的学习-注册树模式
- PHP之注册
- 设计模式三大基础模式之工厂模式,单例模式,注册树模式
- 慕课网----大话PHP设计模式 三(三种基本设计模式-工厂模式,单例模式,注册树模式)
- php中的工厂模式、单例模式、注册模式
- 注册树模式
- 【设计模式】注册树模式
- backbone官方Todo示例分解学习
- 好太太集团笔试mysql总结01
- HTTP请求报文和HTTP响应报文
- python 作用域
- 策略模式
- PHP之注册树模式
- java虚拟机类加载机制
- C++上机作业-1
- 学生信息管理系统2.0
- 博弈总结
- COLORREF含义及在VC++中的使用
- 本地gradle的一些命令
- 门面模式
- 以Web方向为基础的java学习路线