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

首頁 > 編程 > PHP > 正文

學習php設計模式 php實現建造者模式

2020-03-22 19:54:33
字體:
來源:轉載
供稿:網友
建造者模式可以讓一個產品的內部表象和和產品的生產過程分離開,從而可以生成具有不同內部表象的產品。
一、Builder模式結構圖
二、Builder模式中主要角色
抽象建造者(Builder)角色:定義一個抽象接口,規范產品各個組成成分的建造(即規范具體建造者的方法實現)。其中所規范的方法中必須包括建造方法和結果返回方法
具體建造者(ConcreteBuilder)角色:實現抽象建造者角色所定義的方法。具體建造者與業務邏輯關聯性較大,html' target='_blank'>應用程序最終會通過調用此角色中所實現的建造方法按照業務邏輯創建產品,在建造完成后通過結果返回方法返回建造的產品實例。一般在外部由客戶或一個抽象工廠創建。
導演者(Director)角色:此角色的作用是調用具體的建造者角色建造產品。導演者與產品類沒有直接關系,與產品類交談的是具體抽象角色。
產品(Product)角色:在指導者的指導下由建造者所創建的那個復雜的對象
導演者角色與客戶端直接打交道,它理解客戶端的業務邏輯,將客戶端創建產品的請求拆分成對產品組成部分的請求,然后調用具體產品角色執行建造操作。它分離了客戶端與具體建造者。
三、Builder模式的優缺點
Builder模式的優點: 建造者模式可以很好的將一個對象的實現與相關的“業務”邏輯分離開來,從而可以在不改變事件邏輯的前提下,使增加(或改變)實現變得非常容易。
Builder模式的缺點: 建造者接口的修改會導致所有執行類的修改。
四、Builder模式的使用場景與效果
以下情況應當使用建造者模式:
1、 需要生成的產品對象有復雜的內部結構。
2、 需要生成的產品對象的屬性相互依賴,建造者模式可以強迫生成順序。
3、 在對象創建過程中會使用到系統中的一些其它對象,這些對象在產品對象的創建過程中不易得到。
使用建造者模式主要有以下效果:
1、 建造者模式的使用使得產品的內部表象可以獨立的變化。使用建造者模式可以使客戶端不必知道產品內部組成的細節。
2、 每一個Builder都相對獨立,而與其它的Builder無關。
3、 模式所建造的最終產品更易于控制。
五、Builder模式與其它模式
抽象工廠模式(abstract factory模式):在抽象工廠模式中,每一次工廠對象被調用時都會返還一個完整的產品對象,而客戶端可能會將這些產品組裝成一個更大更復雜的產品,也可能不會。建造者模式則不同,它一點一點地建造出一個復雜的產品,而這個產品的組裝過程發生在建造者內部。二者的區別在于是否有組裝過程,組裝過程發生的位置。這兩個設計模式可以連起來用,客戶端通過調用一個建造角色,間接調用另一個抽象工廠模式的工廠角色。工廠模式返還不同產品族的零件,而建造者模式則把它們組裝起來。策略模式(strategy模式):建造者模式在結構上很接近于策略模式,事實上建造者模式是策略模式的一種特殊情況。二者的區別在于用意不同。建造者模式作用于客戶端一點一點的建造新的對象,而策略模式的目的是為算法提供抽象的接口。建造者模式與模板方法模式:建造者模式在退化、失去導演者角色后,可以發展到模板方法模式(即將建造過程的算法實現放在建造角色中)。建造者模式與合成模式:合成模式描述一個對象樹的組成結構,而建造者模式則可以用來描述對象樹的生成過程。
以上4點來自《Java與模式》
六、Builder模式PHP示例
* 產品 * 此處僅以一個產品類中的字符串演示產品class Product { * 產品的組成部分集合 private $_parts; public function __construct() { $this- _parts = array(); public function add($part) { return array_push($this- _parts, $part); public function show() { echo "the product include:"; array_map('printf', $this- _parts); * 抽象建造者 abstract class Builder { * 產品零件構造方法1 public abstract function buildPart1();
以上就是使用php實現建造者模式的代碼,還有一些關于建造者模式的概念區分,希望對大家的學習有所幫助。PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中午字幕无线码一区2020 | av成人免费观看 | 性猛交ⅹxxx乱巴西 在线播放中文 | 黄色三级三级三级 | h视频免费在线观看 | 成人在线免费小视频 | 黄色免费高清网站 | 91中文字幕在线观看 | 手机在线看片国产 | 久色乳综合思思在线视频 | 成人福利在线免费观看 | 黄视频免费在线 | 99成人精品视频 | 久久久www视频| 久久最新免费视频 | 黄色片网页 | 国产在线精品一区二区 | av在线电影网站 | 激情亚洲一区二区 | 狠狠干最新网址 | 久久国产精品99久久人人澡 | 在线天堂资源 | 亚洲成人欧美在线 | 亚洲第九十九页 | 国产毛片网站 | 精品亚洲福利一区二区 | av手机在线免费播放 | 红杏网站永久免费视频入口 | 日本a v免费观看 | 九九看片 | 免费观看三级毛片 | 色交视频 | 成人电影毛片 | 精品一区二区三区日本 | 久久久久久久九九九九 | 最近国产中文字幕 | 亚洲国产二区 | www.成人精品 | 看个毛片 | 九九热视频免费在线观看 | 特级a欧美做爰片毛片 |