<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 示例 **使用示例:** 使用 PHP 開發的程序中經常會使用外觀模式。它在與復雜程序庫和 API 協作時特別有用。 ## 概念示例 <details> <summary>main.php</summary> ``` <?php namespace RefactoringGuru\Facade\Conceptual; class Facade{ protected $subsystem1; protected $subsystem2; public function __construct(Subsystem1 $subsystem1 = null, Subsystem2 $subsystem2 = null){ $this->subsystem1 = $subsystem1 ?: new Subsystem1(); $this->subsystem2 = $subsystem2 ?: new Subsystem2(); } public function operation(): string{ $result = "Facade initializes subsystems:\n"; $result .= $this->subsystem1->operation1(); $result .= $this->subsystem2->operation1(); $result .= "Facade orders subsystems to perform the action:\n"; $result .= $this->subsystem1->operationN(); $result .= $this->subsystem2->operationZ(); return $result; } } class Subsystem1{ public function operation1(): string{ return "Subsystem1: Ready!\n"; } // ... public function operationN(): string{ return "Subsystem1: Go!\n"; } } class Subsystem2{ public function operation1(): string{ return "Subsystem2: Get ready!\n"; } // ... public function operationZ(): string{ return "Subsystem2: Fire!\n"; } } function clientCode(Facade $facade){ // ... echo $facade->operation(); // ... } $subsystem1 = new Subsystem1(); $subsystem2 = new Subsystem2(); $facade = new Facade($subsystem1, $subsystem2); clientCode($facade); ``` </details> <br /> 輸出 ``` Facade initializes subsystems: Subsystem1: Ready! Subsystem2: Get ready! Facade orders subsystems to perform the action: Subsystem1: Go! Subsystem2: Fire! ``` ### 醫院處方 <details> <summary>main.php</summary> ``` <?php //醫院醫生員工系統 class DoctorSystem{ //通知就診醫生 static public function getDoctor($name){ echo __CLASS__.":".$name."醫生,掛你號".PHP_EOL; return new Doctor($name); } } //醫生類 class Doctor{ public $name; public function __construct($name){ $this->name = $name; } public function prescribe($data){ echo __CLASS__.":"."開個處方給你".PHP_EOL; return "祖傳秘方"; } } //患者系統 class SufferSystem{ static function getData($suffer){ $data = $suffer."資料"; echo __CLASS__.":".$suffer."的資料是這些".PHP_EOL; return $data; } } //醫藥系統 class MedicineSystem{ static function register($prescribe){ echo __CLASS__.":"."拿到處方:".$prescribe."------------通知藥房發藥了".PHP_EOL; Shop::setMedicine("砒霜5千克"); } } //藥房 class shop{ static public $medicine; static function setMedicine($medicine){ self::$medicine = $medicine; } static function getMedicine(){ echo __CLASS__.":".self::$medicine.PHP_EOL; } } // 使用外觀系統 // 掛號系統 class Facade{ static public function regist($suffer, $doct){ $doct = DoctorSystem::getDoctor($doct); //患者系統拿病歷資料 $data = SufferSystem::getData($suffer); //醫生看病歷資料,開處方 $prscirbe = $doct->prescribe($data); //醫藥系統登記處方 MedicineSystem::register($prscirbe); //藥房拿藥 Shop::getMedicine(); } } //患者只需要掛一個號,其他的就讓掛號系統去做吧。 Facade::regist("葉好龍", "賈中一"); ``` </details> <br /> 輸出 ``` DoctorSystem:賈中一醫生,掛你號 SufferSystem:葉好龍的資料是這些 Doctor:開個處方給你 MedicineSystem:拿到處方:祖傳秘方------------通知藥房發藥了 shop:砒霜5千克 ```
                  <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>

                              哎呀哎呀视频在线观看