1。単純な工場モード
説明:同じインターフェイスの実装クラスの作成を実装する工場クラスを作成することです。
しかし、JavaScriptにはインターフェイス番号がないように思われるため、インターフェイスレイヤーを削除します。もちろん、実装クラスのメンバー変数とメソッドは同じでなければなりません。
たとえば、現時点では、テキストメッセージを送信してメールを送信する例を挙げてください。
1>。メール送信[実装]クラス
コードコピーは次のとおりです。
function mailsender(){
this.to = '';
this.title = '';
this.content = '';
}
mailsender.prototype.send = function(){
//ボディを送信します
}
2>。 SMS送信[実装]クラス
コードコピーは次のとおりです。
function smssender(){
this.to = '';
this.title = '';
this.content = '';
}
smssender.prototype.send = function(){
//ボディを送信します
}
3>。工場クラスを作成します:
コードコピーは次のとおりです。
関数sendFactory(){
this.sender = null;
}
sendfactory.prototype.produce = function(type){
var me = this;
if(type == 'mail'){
me.sender = new MailSender();
} else if(type == 'sms'){
me.sender = new smssender();
}
me.senderを返します。
}
4>。この工場クラスを使用してください。
コードコピーは次のとおりです。
var factory = new sendfactory();
var sender = factory.produce( 'mail'); //SMS
sender.to = 'toname#mail.com';
sender.title = 'メールテストタイトル!';
sender.content = 'content'を送信 ';
sender.send();
2。複数の工場メソッドモード
注:返品の実装は合格した文字に基づいているため、複数の工場モードの方法は通常の工場メソッドの改善です。文字入力が正しくない場合、エラーに処理または処理されない場合があります。複数の工場モードメソッドはそのようなエラーを回避できます。
上記の工場クラスを改善しました。
コードコピーは次のとおりです。
関数sendFactory(){
this.sender = null;
}
sendfactory.prototype.producemail = function(){
var me = this;
me.sender = new MailSender();
me.senderを返します。
}
sendfactory.prototype.producesms = function(){
var me = this;
me.sender = new smssender();
me.senderを返します。
}
使い方:
コードコピーは次のとおりです。
var factory = new sendfactory();
var sender = factory.producesms(); //プロデュースメール
sender.to = 'toname#xxxxx';
sender.title = 'sms送信メソッドタイトル';
sender.content = 'content'を送信 ';
sender.send();
3。静的工場メソッドモード
注:上記の複数の工場メソッドモードメソッドを静的識別に変更して、SendFactoryをインスタンス化する必要がないようにします。
次のように、工場コードを変更します。
コードコピーは次のとおりです。
var sendfactory = {
プロデュースメール:function(){
new MailSender()を返します。
}、
producesms:function(){
new smssender()を返します。
}
}
使い方:
コードコピーは次のとおりです。
var sender = sendfactory.producemail();
sender.to = 'toname#mail.com';
sender.title = 'メール送信タイトル';
sender.content = 'content'を送信 ';
sender.send();
工場メソッドモデルの説明
オブジェクト指向の思考プログラミングの説明では、初期化する必要がある多くの製品(現実世界モデル、名前:クラス名、メンバー属性、および操作方法など)がある場合、つまり製品を作成する必要があり、[同じインターフェイスを実装する場合]、ファクトリメソッドモードを使用できます。最初のモードには、入力タイプエラーが可能になり、2番目のモードが必要な場合、工場インスタンスが作成されます。