Javascriptでビルダーパターンを実装する方法

Javascriptでビルダーパターンを実装する方法

概要

ビルダー パターンは比較的単純なデザイン パターンであり、作成パターンに属します。

定義: 複雑なオブジェクトを複数の単純なオブジェクトに分解して構築し、複雑な構築層とプレゼンテーション層を分離して、同じ構築プロセスで異なるプレゼンテーション モードを作成できるようにします。

アドバンテージ:

  • ビルダー パターンではカプセル化が強化され、オブジェクトの作成と構築のプロセスが分離されます。
  • ビルダー パターンは簡単に拡張できます。拡張が必要な​​場合は、新しいビルダーを使用して拡張できます。

モード機能:

  • 複雑なオブジェクトを段階的に作成する
  • パッケージングプロセスとコンポーネントの特定の作成を切り離す
  • コンポーネントの組み立て方法を心配する必要はありません

注記:

  • 安定したアルゴリズムのサポートが必要
  • 加工技術が公開されているため、富裕層はいつでも家がどのように建てられているかを見に行くことができます。

俗語による説明:

金持ちが家を建てたいとします。必要なのは請負業者を見つけることだけです。請負業者は家を建てるための建設チームを見つけます。建設チームを編成して建設を開始するために、労働者を 1 人ずつ探す必要はありません。請負業者は金持ちのニーズを知っており、建設チームを編成するために労働者をどこで見つけるかも知っています。労働者は直接作業できるため、金持ちは労働者と直接やり取りするコストを節約できます。金持ちは家の建て方を知る必要はありません。最後に家を検査できればよいだけです。

コードの実装

コードを書く前に、まず分析してみましょう。

1. 出力は家です

2. 請負業者は作業員を呼び出して作業を開始し、作業員の具体的な主要プロジェクトについて明確に伝える必要があります。

3. 労働者は寝室、リビングルーム、キッチンを建設できる住宅建設者です。

4. 請負業者は単なるインターフェースです。他の人に家を建てるように指示するだけで、何もする必要はありません。

関数Fangzi(){
    this.woshi = "";
    this.keting = "";
    this.chufang = "";
}

関数 Baogongtou(){
    this.jianfangzi = function(gongren){
        gongren.jian_woshi();
        gongren.jian_keting();
        gongren.jian_chufang();
    }
}

関数 Gongren(){
    this.jian_woshi = 関数(){
        console.log("寝室が完成しました!");
    }

    this.jian_keting = 関数(){
        console.log("リビングルームが完成しました!");
    }

    this.jian_chufang = 関数(){
        console.log("キッチンが完成しました!");
    }

    this.wangong = 関数(){
        var fangzi = 新しい Fangzi();
        fangzi.woshi = "OK";
        fangzi.keting = "ok";
        fangzi.chufang = "OK";
        牙子を返す;
    }
}
gongren = new Gongren();
baogongtou = new Baogongtou() とします。
//寝室が完成しました!
//リビングルームが完成しました!
//キッチンが完成しました!
宝公頭建方子(公人);
var my_fangzi = gongren.wangong();
/*
ファンジ=
       チューファン:「OK」
       keting: 「OK」
       をし: 「わかった」
       }
*/
コンソールにログ出力します。

上記のコードでは、Gongren() に具体的な建設プロセス、つまり具体的な作業が含まれていることがわかります。Fangzi() は最初は空で、リビングルーム、キッチン、寝室はありません。Baogongtou() は、家を建てることができることを宣伝し、次にワーカー メソッドを渡してワーカーを呼び出して建設を行います。ワーカー メソッドが実行されると、建設が完了し、その後家が引き渡されます。Fangzi() メソッドを新しいメソッドでインスタンス化し、新しいメソッドで再割り当てします。

以上がJavascriptでビルダーパターンを実装する方法の詳細です。Javascriptビルダーパターンの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • JavaScript デザインパターン - ビルダーパターンの原則とアプリケーション例の分析
  • JavaScript デザインパターン ビルダーパターン例チュートリアル
  • JavaScript デザインパターン クラシックビルダーパターン
  • JSビルダーモードの基本的な使用例の分析
  • JavaScript徹底理解シリーズ(27):デザインパターンにおけるビルダーパターンの詳細解説
  • JavaScript デザインパターン ビルダーパターンの紹介
  • JS デザイン パターン: ファクトリー パターンの定義と実装の簡単な分析
  • JS デザイン パターン: シングルトン パターンの定義と実装の簡単な分析
  • JavaScript デザイン パターン - ビジター パターンの原則と使用例の分析
  • JavaScript デザインパターン - テンプレートメソッドパターンの原則と使用例の分析

<<:  CentOS7にPHP7 Redis拡張機能をインストールする方法

>>:  Linux パーティションまたは論理ボリュームにファイルシステムを作成する方法

推薦する

Vue-routerルーティングの使い方

目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...

Linux リダイレクトの使用方法の詳細な説明

誰でも時々データをコピーして貼り付ける必要があると思います。コピーして貼り付けるためにファイルを開く...

CSS3で実装されたダイナミックな星空の背景

結果:実装コードhtml <link href='https://fonts.goog...

Vueはミックスインを使用してコンポーネントを最適化します

目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...

シンプルで簡単なJavaScript開発のためのSvelte実装原理の詳細な説明

目次デモ1フラグメントの作成スヴェルトコンポーネント状態を変更できるデモSvelte は長い間存在し...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

Windows Server のインストール後にワイヤレスとオーディオが機能しない問題を解決する

1. ワイヤレスPowerShell を実行し、次のコマンドを入力します。 install-wind...

Webフロントエンドスキル概要(個人の実務経験)

1. 今日、ページを作っているときに、矢印を中央に配置する効果に遭遇しました。クリック領域を大きくし...

中央のテキストの両側に水平線を描くためのCSS

1. vertical-align プロパティは次の効果を実現します。 vertical-alig...

HTML構造化実装方法

DIV+css構造 CSSレイアウトを学んでいますか?まだ純粋な CSS レイアウトを完全に習得でき...

CSS 背景と境界タグの例の詳細な説明

1. CSS背景タグ1.背景色を設定するbackground-ground-color プロパティは...

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

EChartsマウスイベント処理方法の詳細な説明

イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

MySQL データベース ターミナル - 一般的な操作コマンド コード

目次1. ユーザーを追加する2. ユーザー名とホストを変更する3. パスワードを変更する4. ユーザ...