ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript デザインパターンのファクトリーメソッドパターンの紹介
この記事では、JavaScript デザインパターンにおけるファクトリメソッドパターンの導入を中心に、簡単なファクトリメソッドパターン、複数のファクトリメソッドパターンなどを解説しています。必要な方は参考にしてください。
1. 単純なファクトリ パターン
説明: 同じインターフェイスの実装クラスの作成を実装するファクトリ クラスを作成します。
しかし、JavaScript にはインターフェースのようなものがないようなので、インターフェース層を削除します。もちろん、実装クラスのメンバー変数とメソッドは同じである必要があります。 >例: テキスト メッセージ送信と電子メール送信の例を示します。
1. 電子メール送信 [実装] クラス
2. SMS 送信 [実装] クラスfunction MailSender() { this.to = ''; this.title = ''; this.content = ''; } MailSender.prototype.send = function() { //send body }3. ファクトリ クラスを作成します:
function SmsSender() { this.to = ''; this.title = ''; this.content = ''; } SmsSender.prototype.send = function() { //send body }4. このファクトリ クラスを使用します:
function 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(); } return me.sender; }
var factory = new SendFactory(); var sender = factory.produce('mail'); //sms sender.to = 'toName#mail.com'; sender.title = '邮件测试标题!'; sender.content = '发送内容'; sender.send();2. 複数のファクトリ メソッド パターン
説明: 複数のファクトリ モード メソッドは、通常のファクトリ メソッドを改良したものです。返される実装は、渡された文字に基づいているためです。文字が正しく入力されない場合、処理されないか、または処理される可能性があります。間違った方法で、複数のファクトリ パターン メソッドを使用すると、このようなエラーを回避できます。
上記のファクトリ クラスを改善します:
function SendFactory() { this.sender = null; } SendFactory.prototype.produceMail = function() { var me = this; me.sender = new MailSender(); return me.sender; } SendFactory.prototype.produceSms = function() { var me = this; me.sender = new SmsSender(); return me.sender; }3. 静的ファクトリ メソッド パターン
var factory = new SendFactory(); var sender = factory.produceSms(); //produceMail sender.to = 'toName#xxxxx'; sender.title = '短信发送方法标题'; sender.content = '发送内容'; sender.send();説明: 上記の複数のファクトリ メソッド パターンのメソッドを静的識別子に変更するだけで、SendFactory をインスタンス化する必要がなくなります。ファクトリ クラスのコードは次のように変更されます。
使用法:
ファクトリ メソッド パターンの説明
var SendFactory = { produceMail : function() { return new MailSender(); }, produceSms : function() { return new SmsSender(); } }
オブジェクト指向の説明プログラミングにおいて、初期化が必要なプロダクト (実世界のモデル、名前: クラス名、メンバー属性、操作メソッドなど) が多数ある場合、つまりプロダクトを作成して [同じインターフェイスを実装する] 必要がある場合、ファクトリ メソッド パターンを使用します。最初のパターンは入力タイプが間違っている可能性があります。
var sender = SendFactory.produceMail(); sender.to = 'toName#mail.com'; sender.title = '邮件发送标题'; sender.content = '发送内容'; sender.send();上記はこの章の内容全体です。その他の関連チュートリアルについては、
JavaScript ビデオ チュートリアル をご覧ください。