PHP中工厂模式、单例模式和注册树模式如何结合应用实例详解?

2026-04-02 05:191阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计547个文字,预计阅读时间需要3分钟。

PHP中工厂模式、单例模式和注册树模式如何结合应用实例详解?

本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给广大读者,仅供参考,具体如下:

+ 三种基本设计模式 + 1、工厂模式:工厂方法或类生成对象,而不是在代码中直接new。工厂方法或类生成对象,而不是在代码中直接new。

+ 单例模式:确保一个类只有一个实例,并提供一个全局访问点。

本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给大家供大家参考,具体如下:

三种基本设计模式

1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
2、单例模式:使某个类的对象仅允许创建一个
3、注册模式:全局共享和交换对象

工厂模式:

<?php namespace IMooc; class Factory { static function createDatabase() { $db = new Database(); return $db; } }

$db = IMooc\Factory::createDatabase();

工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。

单例模式:

<?php namespace IMooc; class Database { protected $db; private function __construct() { } // 获取数据库操作实例 static function getInstance() { if(self::$db){ return self::$db; }else{ self::$db = new self(); return self::$db; } } } // 无论调用多少次,只会创建一个实例 $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance();

注册树模式:

<?php namespace IMooc; class Register { protected static $objects; static function set($alias, $object) { self::$objects[$alias] = $object; } static function get($name) { return self::$objects[$name]; } static function _unset($alias) { unset(self::$objects[$alias]); } } $db = \IMooc\Register::get('db1');

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

PHP中工厂模式、单例模式和注册树模式如何结合应用实例详解?

希望本文所述对大家PHP程序设计有所帮助。

本文共计547个文字,预计阅读时间需要3分钟。

PHP中工厂模式、单例模式和注册树模式如何结合应用实例详解?

本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给广大读者,仅供参考,具体如下:

+ 三种基本设计模式 + 1、工厂模式:工厂方法或类生成对象,而不是在代码中直接new。工厂方法或类生成对象,而不是在代码中直接new。

+ 单例模式:确保一个类只有一个实例,并提供一个全局访问点。

本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给大家供大家参考,具体如下:

三种基本设计模式

1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
2、单例模式:使某个类的对象仅允许创建一个
3、注册模式:全局共享和交换对象

工厂模式:

<?php namespace IMooc; class Factory { static function createDatabase() { $db = new Database(); return $db; } }

$db = IMooc\Factory::createDatabase();

工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。

单例模式:

<?php namespace IMooc; class Database { protected $db; private function __construct() { } // 获取数据库操作实例 static function getInstance() { if(self::$db){ return self::$db; }else{ self::$db = new self(); return self::$db; } } } // 无论调用多少次,只会创建一个实例 $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance();

注册树模式:

<?php namespace IMooc; class Register { protected static $objects; static function set($alias, $object) { self::$objects[$alias] = $object; } static function get($name) { return self::$objects[$name]; } static function _unset($alias) { unset(self::$objects[$alias]); } } $db = \IMooc\Register::get('db1');

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

PHP中工厂模式、单例模式和注册树模式如何结合应用实例详解?

希望本文所述对大家PHP程序设计有所帮助。