好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP每日讲解-工厂模式、单例模式与注册树模式实例详解

PHP每日讲解-工厂模式、单例模式与注册树模式实例详解

本文实例讲述了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每日讲解-工厂模式、单例模式与注册树模式实例详解的详细内容...

  阅读:51次