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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #### 建造者模式 又名:生成器模式,是一種對象構建模式。它可以將復雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的對象。 建造者模式是一步一步創建一個復雜的對象,它允許用戶只通過指定復雜對象的類型和內容就可以構建它們,用戶不需要知道內部的具體構建細節。例如,一輛汽車由輪子,發動機以及其他零件組成,對于普通人而言,我們使用的只是一輛完整的車,這時,我們需要加入一個構造者,讓他幫我們把這些組件按序組裝成為一輛完整的車。 `角色:` Builder:抽象構造者類,為創建一個Product對象的各個部件指定抽象接口。 ConcreteBuilder:具體構造者類,實現Builder的接口以構造和裝配該產品的各個部件。定義并明確它所創建的表示。提供一個檢索產品的接口 Director:指揮者,構造一個使用Builder接口的對象。 Product:表示被構造的復雜對象。ConcreateBuilder創建該產品的內部表示并定義它的裝配過程。 包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。 `UML類圖:` ![此處輸入圖片的描述](https://doc.shiyanlou.com/document-uid108299labid2297timestamp1486373749271.png) `示例代碼:`:`Builder.class.php` ~~~php <?php /** * chouxiang builer */ abstract class Builder { protected $car; abstract public function buildPartA(); abstract public function buildPartB(); abstract public function buildPartC(); abstract public function getResult(); } class CarBuilder extends Builder { function __construct() { $this->car = new Car(); } public function buildPartA(){ $this->car->setPartA('發動機'); } public function buildPartB(){ $this->car->setPartB('輪子'); } public function buildPartC(){ $this->car->setPartC('其他零件'); } public function getResult(){ return $this->car; } } class Car { protected $partA; protected $partB; protected $partC; public function setPartA($str){ $this->partA = $str; } public function setPartB($str){ $this->partB = $str; } public function setPartC($str){ $this->partC = $str; } public function show() { echo "這輛車由:".$this->partA.','.$this->partB.',和'.$this->partC.'組成'; } } class Director { public $myBuilder; public function startBuild() { $this->myBuilder->buildPartA(); $this->myBuilder->buildPartB(); $this->myBuilder->buildPartC(); return $this->myBuilder->getResult(); } public function setBuilder(Builder $builder) { $this->myBuilder = $builder; } } $carBuilder = new CarBuilder(); $director = new Director(); $director->setBuilder($carBuilder); $newCar = $director->startBuild(); $newCar->show(); ~~~
                  <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>

                              哎呀哎呀视频在线观看