基本设计模式

工厂模式

防止后面类名或参数发生变更时修改多个文件

定义一个Factory类

  class Factory{

    //返回数据库对象实例

    static function createDatabase(){

      return new Db();

    }

  }

 

单例模式

  例 使用数据库连接时只需要创建一个数据库连接实例,如多次newDB对象会造成资源的浪费

  class Db{

    protected $db;

    //在构造方法中连接数据库

    private function __ construct(){}

 

    //私有复制方法

    private __clone(){}

 

    //获取实例方法

    static function getInstance(){

      if($db instanceof self){

        return $this->db;

      }

      return new self();

    }

  }

 

注册树模式

  其实就是高级工厂模式

  一般在环境初始化时把需要用到的对象装载上树

  或者通过工厂类调用时装载,下次调用时直接获取树上的实例

  class Register{

    proteccted static $objects;  //存取全局实例的树

    //注册对象到全局的注册树上

    function set($alias, $object){

      sele::$objects[$alias] = $object;

    }

 

    //获取注册树上的对象

    function static get($name){

      return self::$objectsp[$name];

    }

 

    //卸载当前树上实例

    function _unset($name){

      unset(self::$objects[$name]);

    }

  }

 

转载于:https://www.cnblogs.com/yoxuc/p/11147982.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值