麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > FAQ問答 > 正文

建造者模式是什么?

2020-03-22 17:16:06
字體:
來源:轉載
供稿:網友
建造模式介紹

建造模式(Builder Pattern)是對象的創建模式。它可以將一個產品的內部表象與產品的生成過程分割開來,從而可以使一個建造過程生成具有不同的內部表象的產品對象。

由于建造零件的過程很復雜,因此,這些零件的建造過程往往被“外部化”到另一個乘坐建造者的對象里,建造者對象返還給客戶端的是一個全部零件都建造完畢的產品對象。它將產品的結構和建造過程對客戶端隱藏起來。

建造模式的四種角色:

1 builder:為創建一個產品對象的各個部件指定抽象接口。

2 ConcreteBuilder:實現Builder的接口以構造和裝配該產品的各個部件,定義并明確它所創建的表示,并 提供一個檢索產品的接口。

3 Director:構造一個使用Builder接口的對象。

4 Product:表示被構造的復雜對象。ConcreteBuilder創建該產品的內部表示并定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的接口。

php代碼實例 ?php * 產品,包含產品類型、價錢、顏色屬性html' target='_blank'>class Productpublic $_type = null;public $_price = null;public $_color = null;public function setType($type){echo 設置產品類型 $this- _type = $type;public function setPrice($price){echo 設置產品價格, $this- _price = $price; public function setColor($color){echo 設置產品顏色 $this- _color = $color;//不使用builder模式$product = new Product();$product- setType( 衣服 $product- setPrice( 100 $product- setColor( 紅色 //使用builder模式class ProductBuilder{public $_config = null;public $_object = null;//$config 被設計為一個數組,格式//$config = array( type = xx , price = xx , color = xx public function ProductBuilder($config){$this- _object = new Product();$this- _config = $config;public function build(){echo br / 使用建造者模式: br / $this- _object- setType($this- _config[ type $this- _object- setPrice($this- _config[ price $this- _object- setColor($this- _config[ color public function getProduct(){return $this- _object;$config = array( type = 汽車 , price = 2000000 , color = 白色 $objBuilder = new ProductBuilder($config);$objBuilder- build();$objProduct = $objBuilder- getProduct();echo br / var_dump($objProduct);

建造者模式的優點

首先,建造者模式的封裝性很好。使用建造者模式可以有效的封裝變化,在使用建造者模式的場景中,一般產品類和建造者類是比較穩定的,因此,將主要的業務邏輯封裝在導演類中對整體而言可以取得比較好的穩定性。

其次,建造者模式很容易進行擴展。如果有新的需求,通過實現一個新的建造者類就可以完成,基本上不用修改之前已經測試通過的代碼,因此也就不會對原有功能引入風險。

建造者模式與工廠模式的區別

我們可以看到,建造者模式與工廠模式是極為相似的,總體上,建造者模式僅僅只比工廠模式多了一個“導演類”的角色。在建造者模式的類圖中,假如把這個導演類看做是最終調用的客戶端,那么圖中剩余的部分就可以看作是一個簡單的工廠模式了。

與工廠模式相比,建造者模式一般用來創建更為復雜的對象,因為對象的創建過程更為復雜,因此將對象的創建過程獨立出來組成一個新的類——導演類。也就是說,工廠模式是將對象的全部創建過程封裝在工廠類中,由工廠類向客戶端提供最終的產品;而建造者模式中,建造者類一般只提供產品類中各個組件的建造,而將具體建造過程交付給導演類。由導演類負責將各個組件按照特定的規則組建為產品,然后將組建好的產品交付給客戶端。

總結

建造者模式與工廠模式類似,他們都是建造者模式,適用的場景也很相似。一般來說,如果產品的建造很復雜,那么請用工廠模式;如果產品的建造更復雜,那么請用建造者模式。

以上就是建造者模式是什么?的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久9色 | 影视免费观看 | 在线成人免费观看视频 | 成人在线a | 爱草在线 | 在线亚洲播放 | 91重口视频 | 精品成人久久久 | 久久久一区二区三区视频 | 国产二区三区视频 | 伊人在线 | 中文字幕亚洲视频 | 美女网站色免费 | 欧美精品亚洲人成在线观看 | av色偷偷| 国产成人自拍av | 久久福利小视频 | 毛片大全在线观看 | 美国一级黄色毛片 | 美女羞羞视频网站 | 成年人在线视频免费 | 最新一区二区三区 | 亚洲日本韩国精品 | 91色综合综合热五月激情 | 国产成年人网站 | 欧美日本色 | 成熟女人特级毛片www免费 | 亚洲综人网 | 日本不卡一区二区三区在线观看 | 久久久久久久久久久影视 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 欧美a∨一区二区三区久久黄 | 久久久久av69精品 | 欧美一级黄色免费看 | 国产91精品一区二区麻豆亚洲 | 午夜免费一区 | 99视频有精品视频高清 | 9999视频| 国产一区二区三区欧美 | 91精品国产日韩91久久久久久360 | 羞羞草视频|