ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptパターン設計のファクトリパターンを詳しく解説_JavaScriptスキル

JavaScriptパターン設計のファクトリパターンを詳しく解説_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:27:471192ブラウズ

パターンの種類: ファクトリ パターン
パターンの説明: オブジェクトを動的に作成するために使用される一般的なパターンの 1 つ
適用範囲: 実行時に一連の交換可能なサブクラスの中から選択する必要があるクラス
注: の実装インターフェイスでは、異なるサブクラスを同等に扱えるように、ファクトリー パターンを適切に使用しますが、形式に固執せず、本質を理解してください。
キーポイント: 関数/クラス/サブクラスで構築されたセレクター
本質: セレクターとしての関数の使用
一般的な使用形式:
独立したセレクターとして存在:

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

function FactoryMode(index){
switch(index){
case "index1" :
return new Class1();break;
case "index2":
return new Class2();break;
case "index3":
return new Class3( ) ;break;
default:return new ClassComm();break;
}
}

またはクラスのメソッドとして存在します:
コードをコピー コードは次のとおりです:

var MainClass=function(){};//メイン クラス コンストラクター
MainClass.prototype={
FactoryMode:function(){}//サブクラス セレクター
}

または暗黙的な選択、つまりユーザーの主観的な選択に基づいて選択されません。

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

var xmlRequest=function() {
if(this.isOffOnline()){
xhr= new OfflineHandler();
}//現時点でネットワークが利用できない場合は、キャッシュ可能な AJAX オブジェクトを作成します
else if( this.isHightLatency()){
xhr= new QueuedHandler();
}//ネットワーク遅延が大きい場合は、AJAX オブジェクトからキューを作成します
else {
xhr=new SimpleHandler() ;
}//ネットワークの場合、通常は単純な AJAX オブジェクトを作成します。
interface.ensureImplements(xhr,AjaxHandler);
//今後の作業がスムーズに進むように、オブジェクトがインターフェイスを実装しているかどうかを確認します。 🎜>return xhr;
}

拡張子:

ファクトリー パターンの本質は、セレクターをオブジェクトの選択として使用できるだけでなく、関数の選択、クラスの選択、パラメータの選択
次のような関数の選択:

コードをコピー コードは次のとおりです。 :
var addEvent=(function (){
if(!-[0,]){
return function(elem,type,handler){
elem[type handler.toString()]=handler;
elem.attachEvent ("on" type,elem[type handler.toString])
}}//if IE
else {
return function( elem,type,handler){
elem.addEventListener(type ,handler,false);
}
}
})();//

クラス選択:



var適切なクラス = function(){
if(条件 A に一致) return Class1 ;
else if(条件 B に一致) return Class2;


パラメータの選択:




コードをコピー
コードは次のとおりです: 関数 Country (country){ if(country=="中国")
this.config={};//基本パラメータ 1 を設定します
else if(contry=="アメリカ")
this。 config={};//パラメータ 2 を設定します
else if()
........//待機
}
country.prototype={};
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。