ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript デザイン パターン クラシック ビルダー pattern_javascript スキル

JavaScript デザイン パターン クラシック ビルダー pattern_javascript スキル

WBOY
リリース: 2016-05-16 15:13:52
オリジナル
1092 人が閲覧しました

1. ビルダーモード モードの概念

ビルダー パターンは、複雑なオブジェクトの構築をその表現から分離できるため、同じ構築プロセスで異なる表現を作成できます。つまり、ビルダー モードを使用する場合、ユーザーはそれらを取得するために構築するタイプを指定する必要があり、特定の構築プロセスや詳細を知る必要はありません。ビルダー パターンは、実際にはコマンダー、ビルダー、およびコマンダーを使用して特定のビルダーを呼び出して作業し結果を得るクライアントで構成されます。

ビルダー パターンは主に「複雑なオブジェクトを段階的に構築する」ために使用されます。「段階的に」は安定したアルゴリズムですが、複雑なオブジェクトのさまざまな部分は頻繁に変更されます。

平たく言えば、白富美は別荘を建てる必要があり、請負業者に直接行き、請負業者が別荘を建てるための労働者を探します。その中で、白富美さんは直接労働者を一人一人探しに行く必要がありません。さらに、請負業者は白富美さんのニーズを理解しており、労働者をどこで見つければよいかを知っているため、労働者は作業を行うことができます。これにより、白富美さんと労働者の間のコミュニケーションコストが節約され、バイ・フメイさんは家の建て方を知る必要がなくなり、最終的に家を建てることができるようになります。家を手に入れてください。

ビルダーモードの構造図

2. ビルダーモードの機能と注意事項

モード機能:

1. 複雑なオブジェクトを段階的に作成します

2. カプセル化プロセスとコンポーネントの特定の作成を分離します

3. コンポーネントの組み立て方法を心配する必要はありません

注:

1. 安定したアルゴリズムによってサポートされている必要があります

2. 加工技術の公開 - Bai Fumei は家の作り方を気にする必要はありませんが、家がどのように建てられるかをいつでも見ることができます

3. ビルダーモードのコードと実践的な概要

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title></title>

</head>

<body>

<script>

//1.产出东西是房子

//2.包工头调用工人进行开工 而且他要很清楚工人们具体的某一个大项

//3.工人是盖房子的 工人可以建卧室 建客厅 建厨房

//4.包工头只是一个接口而已 他不干活 他只对外说我能建房子

function Fangzi(){//Fangzi可以理解为单例模式

if(!(this instanceof Fangzi)){

return new Fangzi();

}

this.woshi = "";

this.keting = "";

this.chufang = "";

}

function Baogongtou(){

if(!(this instanceof Baogongtou)){

return new Baogongtou();

}

this.jianfangzi = function(gongren){

gongren.jian_chufang();

gongren.jian_keting();

gongren.jian_woshi();

}

}

function Gongren(){

if(!(this instanceof Gongren)){

return new Gongren();

}

this.jian_woshi = function(){

console.log("建卧室");

}

this.jian_keting = function(){

console.log("建客厅");

}

this.jian_chufang = function(){

console.log("建厨房");

}

this.jiaofang = function(){

var _fangzi = new Fangzi();

_fangzi.woshi = "ok";

_fangzi.keting = "ok";

_fangzi.chufang = "ok";

return _fangzi;

}

}

var gongren = new Gongren();

var baogongtou = new Baogongtou();

baogongtou.jianfangzi(gongren);

var myfangzi = gongren.jiaofang();

console.log(myfangzi);

</script>

</body>

</html>

ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート