建造者模式

2021-10-11 02:52:42 字數 4443 閱讀 4140

建立型模式

php建造者模式

簡單物件構建複雜物件

基本元件不變,但是元件之間的組合方式善變

下面我們來構建手機和***

手機簡單由以下構成

手機 => 名稱,硬體, 軟體

硬體又由以下硬體構成

硬體 => 螢幕,cpu, 記憶體, 儲存, 攝像頭

軟體又由以下構成

軟體 => android, ubuntu

***簡單由以下構成

手機 => 名稱,硬體, 軟體

硬體又由以下硬體構成

硬體 => cpu, 記憶體, 儲存

軟體又由以下構成

軟體 => *** os

<?php

namespace builder;

/** * 硬體介面

*/inte***ce hardware

<?php

namespace builder;

/** * 攝像頭實體

*/class hardwarecamera implements hardware

}

<?php

namespace builder;

/** * 處理器實體

*/class hardwarecpu implements hardware

}

<?php

namespace builder;

/** * 記憶體實體

*/class hardwareram implements hardware

}

<?php

namespace builder;

/** * 螢幕實體

*/class hardwarescreen implements hardware

}

<?php

namespace builder;

/** * 儲存實體

*/class hardwarestorage implements hardware

}

<?php

namespace builder;

/** * 軟體介面

*/inte***ce software

<?php

namespace builder;

/** * 作業系統實體

*/class softwareos implements software

}

<?php

namespace builder;

/** * 構建器介面

*/inte***ce productinte***ce

<?php

namespace builder;

use builder\productinte***ce;

/** * ***構建器

*/class *** implements productinte***ce

/*** 構建硬體

** @param array $hardware 硬體引數

* @return void

*/public function hardware($hardware=array())

/*** 構建軟體

* * @param array $software 軟體引數

* @return void

*/public function software($software=array())

}

<?php

namespace builder;

use builder\productinte***ce;

/** * 手機構建器

*/class phone implements productinte***ce

/*** 構建硬體

* @param array $hardware 硬體引數

* @return void

*/public function hardware($hardware=array())

/*** 構建軟體

* @param array $software 軟體引數

* @return void

*/public function software($software=array())

}

<?php

namespace builder;

use builder\hardware;

use builder\software;

/** * 產品類

*/class product

/*** 構建硬體

** @param hardware $hardware 硬體引數

* @return void

*/public function addhardware(hardware $instance)

/*** 構建軟體

* * @param software $software 軟體引數

* @return void

*/public function addsoftware(software $instance)

}

<?php

namespace builder;

use builder\product;

/** * 產品構建器

*/class productbuilder

/*** ***

** @param array $params 引數

* @return product ***

*/public function get***($params = )

/*** phone

* * @param array $params 引數

* @return product phone

*/public function getphone($params = )

}

<?php

/** * 建立型模式

* * php建造者模式

* 簡單物件構建複雜物件

* 基本元件不變,但是元件之間的組合方式善變

* * 下面我們來構建手機和***

* * // 手機簡單由以下構成

* 手機 => 名稱,硬體, 軟體

* // 硬體又由以下硬體構成

* 硬體 => 螢幕,cpu, 記憶體, 儲存, 攝像頭

* // 軟體又由以下構成

* 軟體 => android, ubuntu

* * * // ***簡單由以下構成

* 手機 => 名稱,硬體, 軟體

* // 硬體又由以下硬體構成

* 硬體 => cpu, 記憶體, 儲存

* // 軟體又由以下構成

* 軟體 => *** os

*/// 註冊自載入

spl_autoload_register('autoload');

function autoload($class)

/************************************* test *************************************/

use builder\productbuilder;

$builder = new productbuilder();

// 生產一款***

$builder->get***([

'name' => '某族***',

'hardware' => [

'cpu' => 1,

'ram' => 1,

'storage' => 128,

],'software' => ['os' => '*** os']

]);echo "\n";

echo "----------------\n";

echo "\n";

// 生產一款手機

$builder->getphone([

'name' => '某公尺8s',

'hardware' => [

'screen' => '5.8',

'camera' => '2600w',

'cpu' => 4,

'ram' => 8,

'storage' => 128,

],'software' => ['os' => 'android 6.0']

]);

建造者模式

1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...

建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...

建造者模式

建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...