<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                參考文章:[https://laravelacademy.org/post/769.html](https://laravelacademy.org/post/769.html) ## DI(依賴注入,是一種設計模式) 只要不是由內部生產(比如初始化、構造函數 \_\_construct 中通過工廠方法、自行手動 new 的),而是由外部以參數或其他形式注入的,都屬于依賴注入(DI) 。是不是豁然開朗?事實上,就是這么簡單。下面就是一個典型的依賴注入: ~~~ // 超能力模組 $superModule = new XPower; // 初始化一個超人,并注入一個超能力模組依賴 $superMan = new Superman($superModule); ~~~ 我們定下了一個接口 (超能力模組的規范、契約),所有被創造的模組必須遵守該規范,才能被生產。 ~~~ interface SuperModuleInterface { /** * 超能力激活方法 * * 任何一個超能力都得有該方法,并擁有一個參數 *@param array $target 針對目標,可以是一個或多個,自己或他人 */ public function activate(array $target); } ~~~ 遵循接口,創建了下述(模組)類: ~~~ /** * X-超能量 */ class XPower implements SuperModuleInterface { public function activate(array $target) { // 這只是個例子。。具體自行腦補 } } /** * 終極炸彈 (就這么俗) */ class UltraBomb implements SuperModuleInterface { public function activate(array $target) { // 這只是個例子。。具體自行腦補 } } ~~~ 現在,當我們初始化 “超人” 類的時候,提供的模組實例必須是一個 SuperModuleInterface 接口的實現。 ~~~ class Superman { protected $module; public function __construct(SuperModuleInterface $module) { $this->module = $module; } } ~~~ ## IOC(控制反轉,是一種思想) 我們不應該手動在 “超人” 類中固化了他的 “超能力” 初始化的行為,而轉由外部負責,由外部創造超能力模組、裝置或者芯片等(我們后面統一稱為 “模組”),植入超人體內的某一個接口,這個接口是一個既定的,只要這個 “模組” 滿足這個接口的裝置都可以被超人所利用,可以提升、增加超人的某一種能力。 > **這種由外部負責其依賴需求的行為,我們可以稱其為 “控制反轉(IoC)。**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看