• php设计模式


    所谓设计模式就是在哪里new一个类,如何调用

    共厂:在另一个F类(工厂类)中new ;

    单例:在类内部new自己,工厂调用

    注册树:类内部new自己,工厂调用,并把new保存到第三个类属性中

    工厂模式:

    使用一个工厂类的方法生成对象,而不是new;

    优点:如果多出new classname  一旦这个类名改变或者其他的改变,所有的都要修改,而使用工厂则只修改一处

    //工厂模式
    class factory{
      static function createDatebase(){
        $db = new Database();
        return $db;
      }
    }
    $db =factory::createDatebase()
    //单例模式
      //特点:构造函数私有化,不允许外部new
      //内部另一个方法new自己保存到属性
    class Database{
      protected $db;
      private function __construct(){}
      static function getInstance(){
        if(self::$db){
          return self::$db;
        }else{
          self::$db= new self();
          return self::$db;
        }
      }
    }
    class Factory{
      static function createDatebase(){
        $db=Datebase::getInstance();
        return $db
      }
    }
    $db =Factory::createDatebase();
    //注册树模式
    class Register{
      protected static $objects;
      static function set($alias,$object){
        self::$object[$alias] = $object;
      }
      static function get($name){
        return self::$object[$name];
      }
      function _unset($alias){
        unset(self::$object[$alias])
      }
    }
    class Factory{
      static function createDatebase(){
        $db=Datebase::getInstance();
        register::set('db1',$db);
        return $db
      }
    }
    
    $db = Register::get('db1')



    /******************工厂模式******************************/
    工厂模式:在工厂里边new对象,

    用法:调用工厂

    /*******************单例模式************************/

    单例模式:类自身私有化构造不允许外部调用,类自身一个方法new自己,工厂调用类的生成对象的方法

    /*******************注册树模式**************************/

    类本身单例,工厂调用类本身的生成对象的方法,生成的对象挂到注册树类,用时直接到注册数上找

    
    
  • 相关阅读:
    [转]如何有效运作知识库
    针式PKM如何帮助你解决个人知识管理中的常见问题?
    知识管理的目的是什么?如何进行知识管理?
    [转]阅读《讀書這玩意兒》有感&笔记
    [转]学习的三个层次
    小鱼干的做法
    IIS ERROR: Server Application Error 和 IIS与.NET Framework的安装顺序问题
    C#调用oracle存储过程 最简单的实例
    Oracle 中游标实例
    查看Sql Server是否有打SP4
  • 原文地址:https://www.cnblogs.com/finddata/p/11057747.html
Copyright © 2020-2023  润新知