亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第5天 設計模式之注冊樹模式

標簽:
PHP 設計模式

课程名称:大话PHP设计模式

课程章节:注册树模式

课程讲师:Rango

课程内容:

可以这么理解注册树模式

  • 注册树模式通过将对象实例作为果实挂到一颗全局的大树上,使用时就从树上摘下来,只不过摘下来之后树上的这颗果实并不会消失

为什么要使用注册树模式

  • 我们在项目中会实例化很多类,会产生很多对象,这么多的对象就像散兵一样,不方便统筹管理,注册树模式可以解决这个问题

实现注册树模式

  • 建立一个注册树的类,定义一个静态键值数组变量
  • 新建一个get(别名)方法,用来获取对象
  • 新建一个set(别名, 对象)方法,用来把对象写入到静态变量中,别名作为数组的键
  • 新建一个unset(别名)方法,用来把对象从静态变量中删除
  • 具体实现看代码
class Register{
  static $trees = [];

  static public function get($alias) {
    return self::$trees[$alias];
  }

  static public function set($alias, $object) {
    self::$trees[$alias] = $object;
  }

  static public function unset($alias) {
    unset(self::$trees[$alias]);
  }
}

class User{
  public function getName() {
    return '小明';
  }
}

// 可以在项目初始化的时候实例化User类,并插入到树上
$user = new User;
Register::set('user', $user);

// 在项目其它地方使用时,使用注册树类的get方法来获取对象
$user = Register::get('user');
echo $user->getName();

// 输出:小明

课程收货

通过学习本节课,还了解到了之前学习的单例模式和工厂模式的不足之处,学习到了可以通过一种新的设计模式来弥补已有的设计模式的不足的方法,拓宽了思路,希望在以后的学习中可以不断的学习到新的知识
图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消