• 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自己,工厂调用类的生成对象的方法

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

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

    
    
  • 相关阅读:
    curl java 模拟http请求
    Redis 个人理解总结
    算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)等是什么意思?
    RESTful 个人理解总结
    springcloud(五):熔断监控Hystrix Dashboard和Turbine
    springcloud(四):熔断器Hystrix
    springcloud(三):服务提供与调用
    springcloud(二):注册中心Eureka
    springcloud(一):大话Spring Cloud
    Spring Cloud在国内中小型公司用的起来吗?
  • 原文地址:https://www.cnblogs.com/finddata/p/11057747.html
Copyright © 2020-2023  润新知