簡介:
建造者模式,又稱之為生成器模式,屬于創建型的設計模式,將一個復雜物件的構建,與它的表示分離,使得同樣的構建程序可以創建不同的表示,
適用場景:
用于創建一些復雜的物件,這些物件內部構建間的建造順序通常是穩定的(這就表名可以抽離),但物件的外在面臨著復雜的變化,
優點:
創建和表象分離
缺點:
如果核心類內部發生變化,建造者也要相應修改
與工廠模式:
比工廠模式多了一道自行處理的工序
代碼:
abstract class TestPaper {
abstract public function BuildPaper();
abstract public function BuildQuestion();
}
class ChineseExaminationPaper extends TestPaper {
public function BuildPaper() {
echo "使用A4紙";
}
public function BuildQuestion() {
echo "語文題";
}
}
class EnglishExaminationPaper extends TestPaper {
public function BuildPaper() {
echo "使用A6紙";
}
public function BuildQuestion() {
echo "英文題";
}
}
class ExaminationPaper {
private $examination_paper;
function __construct($examination_paper) {
$this->examination_paper = $examination_paper;
}
public function create() {
$this->examination_paper->BuildPaper();
$this->examination_paper->BuildQuestion();
}
}
//客戶端代碼
$thinDirector = new ExaminationPaper(new ChineseExaminationPaper());
$thinDirector->create();
$fatDirector = new ExaminationPaper(new EnglishExaminationPaper());
$fatDirector->create();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541351.html
標籤:其他
上一篇:基于SpringBoot 使用 Flink 收發Kafka訊息
下一篇:Java泛型
