久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例

      本文將使用倆種設(shè)計(jì)模式和反射知識(shí)實(shí)現(xiàn)一個(gè)簡單的案例,把之前學(xué)習(xí)過的知識(shí)點(diǎn)進(jìn)行簡單的融合串聯(lián)起來。

      五、融合設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)案例

      經(jīng)歷了九九八十一難終于來到了容器這一環(huán)節(jié),在這一環(huán)節(jié)我們先來實(shí)現(xiàn)一個(gè)自己的容器,將之前講解的單例模式、注冊(cè)樹模式、反射進(jìn)行一個(gè)串聯(lián),從而進(jìn)行加深印象和更好的理解。

      還記得之前在依賴注入里邊說過這樣一個(gè)方法dependency,這個(gè)方法就是進(jìn)行了依賴注入,從而對(duì)代碼進(jìn)行解耦。

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例但是這次呢!會(huì)使用容器來解決這一問題。

      首先先把需要的類定義好,這一個(gè)類就使用了單例模式和注冊(cè)樹模式,之前的文章沒有好好看的,一定要仔細(xì)看一下,否則后文會(huì)很難理解的。

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例
      在這里插入圖片描述

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例

      <?php
      /**
      * Created by PhpStorm.
      * User: 咔咔
      * Date: 2020/9/21
      * Time: 19:04
      */


      namespace container;


      class Container
      {
      /**
      * 存放容器
      * @var array
      */

      public $instances = [];

      /**
      * 容器的對(duì)象實(shí)例
      * @var array
      */

      protected static $instance;

      /**
      * 定義一個(gè)私有的構(gòu)造函數(shù)防止外部類實(shí)例化
      * Container constructor.
      */

      private function __construct() {

      }

      /**
      * 獲取當(dāng)前容器的實(shí)例(單例模式)
      * @return array|Container
      */

      public static function getInstance ()
      {
      if(is_null(self::$instance)){
      self::$instance = new self();
      }

      return self::$instance;
      }

      public function set ($key,$value)
      {
      return $this->instances[$key] = $value;
      }

      public function get ($key)
      {
      return $this->instances[$key];
      }
      }

      為了方便以后查看方便,這里把每節(jié)的案例演示都放在對(duì)應(yīng)的控制器中

      這里把之前的依賴注入的代碼移植過來,并且配置上注解路由進(jìn)行訪問,看最終結(jié)果是否為Car方法返回的123

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例測(cè)試一下打印結(jié)果,一切ok

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例使用單例模式和注冊(cè)樹模式配合后修改的這份代碼

      修改后打印出其結(jié)果,同樣也是car返回的值123。

      在這里需要注意一下就是在同一個(gè)方法中set和get方法是不會(huì)共存的,這里只是為了給大家做一個(gè)演示寫到一起的。

      后邊在看容器源碼時(shí)就知道set和get方法到底是怎么使用的,這里只是讓大家體驗(yàn)一下單例模式和注冊(cè)樹模式。

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例這里做一個(gè)小修改,修改上文中最后倆行代碼

      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例
      在這里插入圖片描述
      ThinkPHP容器之使用設(shè)計(jì)模式和反射實(shí)現(xiàn)一個(gè)簡單的案例
      在這里插入圖片描述

      堅(jiān)持學(xué)習(xí)、堅(jiān)持寫博、堅(jiān)持分享是咔咔從業(yè)以來一直所秉持的信念。希望在偌大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)