当前位置:编程学习 > > 正文

php建造者模式实例(PHP工厂模式、单例模式与注册树模式实例详解)

时间:2022-03-28 22:16:34类别:编程学习

php建造者模式实例

PHP工厂模式、单例模式与注册树模式实例详解

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

三种基本设计模式

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

工厂模式:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • <?php
  • namespace IMooc;
  • class Factory
  • {
  •   static function createDatabase()
  •   {
  •     $db = new Database();
  •     return $db;
  •   }
  • }
  • ?
  • 1
  • $db = IMooc\Factory::createDatabase();
  • 工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。

    单例模式:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • <?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();
  • 注册树模式:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • <?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程序设计有所帮助。

    原文链接:https://blog.csdn.net/github_26672553/article/details/53886889

    上一篇下一篇

    猜您喜欢

    热门推荐