国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP設計模式之建造者模式定義與用法簡單示例

2024-05-05 00:04:59
字體:
來源:轉載
供稿:網友

本文實例講述了PHP設計模式之建造者模式。分享給大家供大家參考,具體如下:

建造者模式:

將復雜對象的創建過程和表示進行分離(好吧,我也看不懂什么意思1)。

來點我人類能聽懂的話:

  • 1、在客戶端看來需要的僅僅是實例化后的類對象(大多數情況下是需要類的屬性)。
  • 2、傳統方式下當類有了之后,一般直接通過new class()的方式直接進行實例化,然后通過$obj->set1()構建屬性1,$obj->set2()構建屬性2,$obj->set3()構建屬性3。。。
  • 3、傳統方式有一個很大的弊端:當我們的類發生改變后,我們需要大量的修改,比如文件1中加上$obj->set4(),文件2中加上$obj->set4(),增加很多的工作量。
  • 4、建造者模式會給出構建對象的具體實現類,將對象的創建實例化過程封裝在建造者類中,并給出一個返回構建后對象的方法,將構建后的對象返回。
  • 5、當類發生改變后,只需要改變建造者類中構建對象的build()方法,對客戶端來說,這并不可見,并且不用做修改就得到了修改后的對象。改動的只是需求對象修改后的邏輯處理。

代碼:

/*** 產品類Person*/class Person{  public $_head;  public $_body;  public function setHead($head){    $this->_head=$head;  }  public function getHead(){    echo $this->_head;  }  public function setBody($body){    $this->_body=$body;  }  public function getBody(){    echo $this->_body;  }}/*抽象建造者:定義的一個抽象接口,用于對具體建造者類進行規范*/interface Builder{  public function buildHead();  public function buildBody();  public function getResult();}/*具體建造者:用于實現具體建造者類*/class ConcreteBuilder implements Builder{  public $person;  public $data;  public function __construct($data){    $this->person=new Person();    $this->data=$data;  }  public function buildHead(){    $this->person->setHead($this->data['head']);  }  public function buildBody(){    $this->person->setBody($this->data['body']);  }  public function getResult(){    return $this->person;  }}/*導演者類:用于調用具體建造者類創建產品類實例*/class Director{  public function __construct(ConcreteBuilder $builder){    $builder->buildHead();    $builder->buildBody();  }}/*客戶端:根據需求進行邏輯處理*/$data=array(  'head'=>'大頭兒子',  'body'=>'身體棒棒噠'  );$builder=new ConcreteBuilder($data);$director=new Director($builder);$person=$builder->getResult();echo $person->_head;echo $person->_body;

運行結果:

大頭兒子身體棒棒噠

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 福建省| 来安县| 宕昌县| 临夏市| 云和县| 五莲县| 揭阳市| 田林县| 长治市| 孙吴县| 凤山县| 游戏| 宁南县| 大连市| 宿松县| 偃师市| 澎湖县| 当雄县| 龙门县| 库尔勒市| 清徐县| 东丽区| 镇康县| 上犹县| 呼伦贝尔市| 九江县| 西城区| 华蓥市| 延庆县| 汽车| 云霄县| 碌曲县| 和林格尔县| 威宁| 平定县| 石柱| 永登县| 杭州市| 施甸县| 盐城市| 独山县|