ホームページ ウェブフロントエンド jsチュートリアル JavaScriptデザインパターンのビルダーパターン入門_JavaScriptスキル

JavaScriptデザインパターンのビルダーパターン入門_JavaScriptスキル

May 16, 2016 pm 04:23 PM
javascript デザインパターン

ビルダーモードの手順

1. 複雑なオブジェクトの構築をその表現から分離し、同じ作成プロセスで異なる表現を使用できるようにします。これはビルダー パターンと呼ばれます。
2. オブジェクト指向言語での記述、主な役割:

1> ビルダー インターフェイス クラスは、複雑な構造オブジェクトを表すビルダー [ワーカー] の統合された操作可能な動作を定義します。 2>。ConcreteBuilder は、Builder のさまざまな表現を表すために、Builder のさまざまな形式のインスタンス オブジェクトを作成 [実装] するために使用されます。
3>. ディレクターは、Builder インスタンスの実行プロセスと形式をガイドし、Builder インスタンスのパフォーマンスから分離し、Builder インスタンスが特定のルール シーケンスに従って製品結果を作成および生成するようにガイドするために使用されます。
4>. ResultObject によって作成された結果は、Director の指示に従って特定の作成者によって作成された結果オブジェクトを生成します。

3. ビルダー モデルは実際には、コマンダー、ビルダー、およびコマンダーを使用して特定のビルダーを呼び出し、特定のビルダーから結果を取得するクライアントです。

4. ビルダー モード、シミュレーション シナリオ: [ビルダー モードの説明を示す例を見るのは良いことです]

ある家族が家を建てたいと考えていますが、所有者や家族の他のメンバーは家の建て方を知らないため、家を建てるチームには住宅ローンを組む職長も必要です。オーナーのアイデアに従って家を建てます。現場監督はオーナーの要望に従ってそれを設計し、作業員にやり方を尋ねます。

職長は、最初のステップは家の全体的なフレームを組み立てること、第 2 ステップは寝室を建てること、第 3 ステップはキッチンを装飾すること、第 4 ステップはリビングルームの建設を完了することであると言いました。装飾、第5ステップ...

職長は何もしませんが、特定の建築者は職長の要求に従い、家全体が完成するまで最初のステップ、2 番目のステップを構築する必要があります。

作成者は、この家を作成するためのすべてのスキルを持っている必要があります。つまり、骨組みの構築、寝室の装飾など...つまり、建築者の仕事や能力は、それよりも優れている必要があります。指揮官が要求するもの、または能力に等しい。

つまり、指揮官は主催者であり、構築者はスキルを提供します。

5. JavaScript のような弱い言語では、インターフェイスのようなものは存在しないため、インターフェイス定義層を無視して、特定のビルダーを直接作成し、そのビルダーをコールバックするガイダンス クラスを構築します。

ソースコードの例

1. ワーカービルダー X:

コードをコピー


コードは次のとおりです: 関数workerBuilder() { This.workOne = function() { //家の骨組みを構築します }
This.workTwo=function() {
//寝室を建てる
}
This.workThree=function() {
// キッチンを構築する
}
This.workFour=function() {
//リビングルームを構築する
}
//....

This.getResult = function() {
//家を完成させます
var house = new House();
//house.HouseFrame ...
家に帰ります
}
}




workBuilder は特定のビルダー クラスであり、workOne と Two はスケルトンの構築などの実行すべきものです。

もちろん、ワーカーを表すさらに複数の workBuilder を構築することもできます。各ジョブの実行方法は異なりますが、作業内容は同じです。


2. コマンダークラス

コードをコピーします

コードは次のとおりです: function Director() { This.construct = function(builder) { builder.workOne(); builder.workTwo();
builder.workThree();
builder.workFour();
//...
//上記内容の順番を設定でき、作業項目も設定可能
}
}

コマンダー クラスのガイダンス メソッドには、ビルダーへのコールバック参照があり、これにはビルダーの作業内容の一部またはすべてが含まれており、コマンダーはビルダー ワーカーが実行する必要がある内容を整理します。

3. プロダクトハウス

コードをコピーします コードは次のとおりです:
function House() {
This.HouseFrame = '';
This.Room = '';
This.Kitchen = '';
This.LivingRoom = '';
//...
}

4. 使用方法


コードをコピー コードは次のとおりです:
var builder = new workBuilder();
var ディレクター = 新しいディレクター();
Director.construct(ビルダー);
var house = builder.getResult();


4 番目のステップは顧客に相当します。家の所有者は監督に家の建設を依頼しますが、職長は何もしないので、最後に家の所有者が建設業者に指示します。素敵な家を労働者から入手しました。

その他の指示

ビルダー モードは、コンテンツ [抽象化] が複雑で、実際のシーンのパフォーマンスが異なる場合、たとえば、全員の日常生活のプロセスなど、一貫性のない作業内容やシーケンスなどの状況に適しています。シナリオ; インストラクター層を使用すると、類似した職場が多数あるものの、作業ルールの順序が一貫していない状況の数を減らすことができ、実際のオブジェクトの構築の抽象化を大幅に減らすことができます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違い Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違い Jun 02, 2024 pm 12:59 PM

Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違いは、デザイン パターンがソフトウェア設計における一般的な問題に対する抽象的な解決策を定義し、ファクトリ パターンなどのクラスとオブジェクト間の相互作用に焦点を当てていることです。アーキテクチャ パターンは、階層化アーキテクチャなどのシステム コンポーネントの編成と相互作用に焦点を当てて、システム構造とモジュールの間の関係を定義します。

Java 設計パターンにおけるアダプター パターンの素晴らしい使用法 Java 設計パターンにおけるアダプター パターンの素晴らしい使用法 May 09, 2024 pm 12:54 PM

アダプター パターンは、互換性のないオブジェクトが連携できるようにする構造設計パターンであり、オブジェクトがスムーズに対話できるように、あるインターフェイスを別のインターフェイスに変換します。オブジェクト アダプタは、適応されたオブジェクトを含むアダプタ オブジェクトを作成し、ターゲット インターフェイスを実装することにより、アダプタ パターンを実装します。実際のケースでは、クライアント (MediaPlayer など) はアダプター モードを通じて高度な形式のメディア (VLC など) を再生できますが、クライアント自体は通常のメディア形式 (MP3 など) のみをサポートします。

Java デザイン パターンにおけるデコレータ パターンの分析 Java デザイン パターンにおけるデコレータ パターンの分析 May 09, 2024 pm 03:12 PM

デコレータ パターンは、元のクラスを変更せずにオブジェクトの機能を動的に追加できる構造設計パターンです。抽象コンポーネント、具象コンポーネント、抽象デコレータ、具象デコレータの連携によって実装され、ニーズの変化に合わせてクラス機能を柔軟に拡張できます。この例では、ミルクとモカのデコレーターが総額 2.29 ドルで Espresso に追加されており、オブジェクトの動作を動的に変更するデコレーター パターンの力を示しています。

PHP設計パターンの実践事例分析 PHP設計パターンの実践事例分析 May 08, 2024 am 08:09 AM

1. ファクトリ パターン: オブジェクト作成とビジネス ロジックを分離し、ファクトリ クラスを通じて指定された型のオブジェクトを作成します。 2. オブザーバー パターン: サブジェクト オブジェクトが状態の変化をオブザーバー オブジェクトに通知できるようにし、疎結合とオブザーバー パターンを実現します。

Java フレームワークでデザイン パターンを使用する利点と欠点は何ですか? Java フレームワークでデザイン パターンを使用する利点と欠点は何ですか? Jun 01, 2024 pm 02:13 PM

Java フレームワークでデザイン パターンを使用する利点には、コードの可読性、保守性、拡張性の向上が含まれます。欠点としては、複雑さ、パフォーマンスのオーバーヘッド、使いすぎによる学習曲線の急上昇などが挙げられます。実際のケース: プロキシ モードはオブジェクトの遅延読み込みに使用されます。デザイン パターンを賢く使用して、その利点を活用し、欠点を最小限に抑えます。

デザインパターンがコードメンテナンスの課題にどのように対処するか デザインパターンがコードメンテナンスの課題にどのように対処するか May 09, 2024 pm 12:45 PM

デザイン パターンは、再利用可能で拡張可能なソリューションを提供することで、コード メンテナンスの課題を解決します。 オブザーバー パターン: オブジェクトがイベントをサブスクライブし、イベントが発生したときに通知を受信できるようにします。ファクトリ パターン: 具象クラスに依存せずにオブジェクトを作成するための集中的な方法を提供します。シングルトン パターン: クラスには、グローバルにアクセス可能なオブジェクトの作成に使用されるインスタンスが 1 つだけ存在することが保証されます。

PHP デザイン パターン: テスト駆動開発の実践 PHP デザイン パターン: テスト駆動開発の実践 Jun 03, 2024 pm 02:14 PM

TDD は、高品質の PHP コードを作成するために使用されます。その手順には、テスト ケースを作成し、期待される機能を記述し、テスト ケースを失敗させることが含まれます。過度な最適化や詳細な設計を行わずに、テスト ケースのみが通過するようにコードを記述します。テスト ケースが合格したら、コードを最適化およびリファクタリングして、可読性、保守性、およびスケーラビリティを向上させます。

Guice フレームワークでのデザイン パターンの適用 Guice フレームワークでのデザイン パターンの適用 Jun 02, 2024 pm 10:49 PM

Guice フレームワークは、次のような多くの設計パターンを適用します。 シングルトン パターン: @Singleton アノテーションによってクラスのインスタンスが 1 つだけであることを保証します。ファクトリ メソッド パターン: @Provides アノテーションを使用してファクトリ メソッドを作成し、依存関係の注入中にオブジェクト インスタンスを取得します。戦略モード: アルゴリズムをさまざまな戦略クラスにカプセル化し、@Named アノテーションを通じて特定の戦略を指定します。

See all articles