ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript デザイン パターンの古典的なシンプルなファクトリ パターンのコード例

JavaScript デザイン パターンの古典的なシンプルなファクトリ パターンのコード例

黄舟
黄舟オリジナル
2017-03-20 11:08:021317ブラウズ

シンプルファクトリパターンは、クラスのどのインスタンスを作成するかを決定するメソッドであり、これらのインスタンスは多くの場合、同じインターフェイスを持ちます。このパターンは主に、インスタンス化された型がコンパイル時に使用される場合に使用されます。決定されますが、実行期間中に決定されます。 簡単に言うと、会社のパントリーにある飲料機のようなもので、どのボタンを押すかによってコーヒーかミルクが決まるようです。

シンプルなファクトリ パターンは、Ajax オブジェクトを作成するときにも非常に便利です。

このライブラリは、クロスドメインで使用するための jsonp や iframe に加えて、xhr オブジェクトの get および post を含む、いくつかの ajax リクエスト メソッドを提供します。これらのメソッドはすべて同じインターフェースに抽象化されます。

var request1 = Request(‘cgi.xx.com/xxx’ , ”get’ );
request1.start();
request1.done( fn );
var request2 = Request(‘cgi.xx.com/xxx’ , ”jsonp’ );
request2.start();
request2.done( fn );

Request は、実際には、xhr インスタンスを生成するか jsonp インスタンスを生成するかは、後続のコードによって決まります。

実際、js では、いわゆる コンストラクター も単純なファクトリーです。 新しいの服を承認しました。この服を脱いで中を見てみましょう。

このコードを通じて、Firefox や Chrome などのブラウザで new を完全にシミュレートできます。

       function A( name ){
this.name = name;
}
function 
Object
Factory(){
var obj = {},
Constructor = 
Array
.prototype.shift.call( arguments );
obj.
proto
 =  typeof Constructor .prototype === ‘number’  ? Object.prototype
:  Constructor .prototype;
var ret = Constructor.apply( obj, arguments );
return
 typeof ret === ‘object’ ? ret : obj;
}
var a = ObjectFactory( A, ‘svenzeng’ );
alert ( a.name );  //svenzeng

このコードは、es5 の new およびコンストラクターの関連する命令から来ています。いわゆる new はそれ自体が単なるオブジェクトであることがわかります。コピーと書き換えのプロセス、および何が生成されるかは、ObjectFactory を呼び出すときに渡されるパラメーターによって決まります。

関連記事:

古典的なJavaScriptデザインパターン、Strategyパターンの詳細説明

古典的なJavaScriptデザインパターン、Singletonパターンの詳細説明

JavaScriptデザイン、Observerパターンの詳細紹介パターン

以上がJavaScript デザイン パターンの古典的なシンプルなファクトリ パターンのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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