ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptを深く理解するシリーズ(27):デザインパターンのビルダーパターンを詳しく解説_JavaScriptスキル

JavaScriptを深く理解するシリーズ(27):デザインパターンのビルダーパターンを詳しく解説_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:11:23723ブラウズ

はじめに

ソフトウェア システムでは、「複雑なオブジェクト」の作成に直面することがあります。通常、この複雑なオブジェクトの各部分は、要件の変更により、特定のアルゴリズムを使用して各部分のサブオブジェクトで構成されます。劇的な変化に直面していますが、それらを組み合わせるアルゴリズムは比較的安定しています。この変化にどう対処すればよいでしょうか?要件の変化に応じてシステム内の「安定した構築アルゴリズム」が変化しないように、「複雑なオブジェクトのさまざまな部分」の変更を分離する「カプセル化メカニズム」をどのように提供するか?これはビルダーパターンと呼ばれるものです。

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

テキスト

このモードは比較的単純です。最初にコーディングしてから説明します。

コードをコピー コードは次のとおりです:

function getBeerById(id, callback) {
// ID を使用してデータをリクエストし、データを返します。
asyncRequest('GET', 'beer.uri?id=' id, function (resp) {
// コールバック呼び出し応答
callback(resp.responseText);
});
}

var el = document.querySelector('#test');
el.addEventListener('click', getBeerByIdBridge, false);

関数 getBeerByIdBridge(e) {
GetBeerById(this.id, 関数 (ビール) {
console.log('リクエストされたビール: ' ビール);
});
}

ビルダーの定義によれば、外観はコールバックです。つまり、データを取得した後の表示と処理はコールバック関数に依存します。これに対応して、コールバック関数は取得方法を意識する必要はありません。同じ例 jquery の ajax メソッドにも、多くのコールバック関数 (成功、エラー コールバックなど) があり、主な目的は責任の分離であることがわかります。

同様に別の jQuery の例:

コードをコピー コードは次のとおりです:

$('
bar
');

生成する HTML 文字を渡すだけでよく、特定の HTML オブジェクトがどのように生成されるかを気にする必要はありません。

概要

ビルダー パターンは主に「複雑なオブジェクトを段階的に構築する」ために使用されます。「段階的に」は安定したアルゴリズムですが、複雑なオブジェクトのさまざまな部分は頻繁に変更されます。その利点は次のとおりです。テクノロジー」が公開され、これによりビルダー モードがより柔軟になり、ビルダー モードでは組み立てプロセスと特定のパーツの作成が分離されるため、各パーツがどのように組み立てられるかを気にする必要がなくなります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。