JavaScript 23種類の設計モードの5建造者モード
14670 ワード
JavaScript 23種類の設計モードの5建造者モード概念と特徴 構造と実装 アプリケーションシーン アプリケーション例 総括 概念と特徴
コンセプト:複雑なオブジェクトの構造とその表現を分離します.同じ構築過程で異なる表現を作成することができます.複雑なオブジェクトを簡単なオブジェクトに分解して、一歩ずつ構築していきます.変わることと変わらないことを分離して、製品の構成部分は不変で、しかしすべての部分は柔軟に選択することができるのです.
特徴:各具体的な建築者は互いに独立して、システムの開拓に有利です. クライアントは、製品の内部構成の詳細を知る必要がなく、詳細リスクを制御するのに便利である. 製品の構成部分は同じで、使用範囲を制限しています. 製品の内部構造が複雑であれば、多くの建築者が増加します. 構造と実現
建築者モードは製品、抽象的な建築者、具体的な建築者、指揮者の4つの要素から構成される.製品:複数の構成部品を含む複雑な対象.抽象建築者:製品の各サブパーツの抽象的な方法と製品に戻る方法.具体的な建設者:建設者インターフェースを実現し、複雑な製品の各部品の具体的な方法を完成する.指挥者:建筑者のオブジェクト中の部品构造と组み立て方法を呼び出して、复雑なオブジェクトの作成を完了します.指揮者の中には製品の具体的な情報が含まれていません.は、複数の部品からなるオブジェクトを作成する必要がある. 製品の作成と表示は独立しています. アプリケーションのインスタンス
しばらく
締め括りをつける
建築者モードとは組み立ての概念であり、異なる部品から複雑な製品に組み立てられています.ただし、部品同士の構造順序は安定しています.
工場の方法と違って、建築者のモードがもっと重視しているのは部品の組み立て過程です.工場の方法が重視しているのは部品の作成過程です.
建築者のモードを使う時、製品の種類が具体的な建築者だけを必要とするなら、抽象的な建築者と指揮者を省略することができます.
コンセプト:複雑なオブジェクトの構造とその表現を分離します.同じ構築過程で異なる表現を作成することができます.複雑なオブジェクトを簡単なオブジェクトに分解して、一歩ずつ構築していきます.変わることと変わらないことを分離して、製品の構成部分は不変で、しかしすべての部分は柔軟に選択することができるのです.
特徴:
建築者モードは製品、抽象的な建築者、具体的な建築者、指揮者の4つの要素から構成される.製品:複数の構成部品を含む複雑な対象.抽象建築者:製品の各サブパーツの抽象的な方法と製品に戻る方法.具体的な建設者:建設者インターフェースを実現し、複雑な製品の各部品の具体的な方法を完成する.指挥者:建筑者のオブジェクト中の部品构造と组み立て方法を呼び出して、复雑なオブジェクトの作成を完了します.指揮者の中には製品の具体的な情報が含まれていません.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
// - ( , , )
function LivingRoom(wall,tv,sofa) {
var wall,tv,sofa;
this.setWall = function (wall) {
this.wall = wall;
};
this.setTv = function (tv) {
this.tv = tv;
};
this.setSofa = function (sofa) {
this.sofa = sofa;
};
this.show = function () {
console.log(this.wall,this.tv,this.sofa)
}
}
// -
function Builder() {
this.product = new LivingRoom();
this.getResult = function () {
return this.product;
}
}
Builder.prototype.buildWall = function () {}
Builder.prototype.buildTv = function () {}
Builder.prototype.buildSofa = function () {}
//
function ConcreteBuilder() {}
ConcreteBuilder.prototype = new Builder();
ConcreteBuilder.prototype.buildWall = function (){
this.product.setWall(" ");
console.log(this.product)
};
ConcreteBuilder.prototype.buildTv = function (){
this.product.setTv(" ");
};
ConcreteBuilder.prototype.buildSofa = function (){
this.product.setSofa(" ");
};
//
function Director(builder) {
//
this.getProduct = function () {
//
builder.buildWall();
//
builder.buildTv();
//
builder.buildSofa();
//
return builder.getResult();
}
}
var concreteBuild = new ConcreteBuilder();
var director= new Director(concreteBuild);
var product = director.getProduct();
product.show();
</script>
</body>
</html>
アプリケーションシーンしばらく
締め括りをつける
建築者モードとは組み立ての概念であり、異なる部品から複雑な製品に組み立てられています.ただし、部品同士の構造順序は安定しています.
工場の方法と違って、建築者のモードがもっと重視しているのは部品の組み立て過程です.工場の方法が重視しているのは部品の作成過程です.
建築者のモードを使う時、製品の種類が具体的な建築者だけを必要とするなら、抽象的な建築者と指揮者を省略することができます.