ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript デザインパターンのシングルトンパターンの紹介
この記事では主に JavaScript デザイン パターンのシングルトン モードを紹介します。シングルトン モードは、静的アクセスでインスタンス化されたオブジェクトであり、既にインスタンス化されているか、これからインスタンス化されるオブジェクトにのみアクセスできます。変革を必要とする友人はそれを参照できます。
シングルピース モードの説明
1. 説明: シングルピース モードは、静的アクセスでインスタンス化されたオブジェクトです。 、このオブジェクトには、インスタンス化された、またはインスタンス化されるオブジェクトである、Java、.Net C#、その他のサーバー側動的言語などのオブジェクト指向言語を介してのみアクセスできます。クラス操作がスムーズに進行し、並列処理を回避できます。
2. シングルトン モードの利点:
1) 頻繁なメモリ操作の高速化とメモリ占有を回避します。メモリ;
2) 、大規模システムにおけるオブジェクトのオーバーヘッドを最小限に抑える;
3) 前述のように、並列処理によって引き起こされるデータの異常を回避するために、特定の種類の操作が確実に実行されるようにすることができます。 🎜>
使用法:
var Singleton = { instance: null, MailSender: function() { var self = this; self.to = ''; self.title = ''; self.content = ''; self.send = function() { //send body } }, getInstance : function() { if (this.instance == null) { this.instance = new Singleton.MailSender(); } return this.instance; } }
DWZ のようなリッチ UI フレームワークなどの一部のグローバル フレームワークがグローバル Singleton を作成する場合、Singleton.instance には値があるため、再度作成する必要はありません。
もちろんです。 、このように書くと、より明確になり、サーバーサイド言語と組み合わせられます:var mail = Singleton.getInstance(); mail.to = 'toname#mail.com'; mail.title = '单件模式发送'; mail.content = '发送内容'; mail.send();
その他の実践的な説明
Singleton.getInstance().to = 'toname#mail.com'; Singleton.getInstance().title = '单件模式发送'; Singleton.getInstance().content = '发送内容'; Singleton.getInstance().send();
どこシングルトンモードの方が便利ですか?例えば、大規模な同時運用や、取引所の運用プロセス記録などの早い者勝ちに注意する必要がある場合など、運用サーバ上に統一設定ファイルがある場合などです。 、シングルピースモードを使用して操作することもできます。さらに: シングルモードメソッド:
1. 上記のメソッドはレイジーメソッドと呼ばれます
2。メソッド:
使用方法は同じです。クロージャー メソッドを使用してシングルトン モードを作成し、インスタンス オブジェクトを非表示にしますvar Singleton = { instance : new Singleton.MailSender(), MailSender : function() { var self = this; self.to = ''; self.title = ''; self.content = ''; self.send = function() { //send body } }, getInstance : function() { return this.instance; } }
1. コード:
2. 使用法:
var Singleton = (function() { var instance = null; function MailSender() { this.to = ''; this.title = ''; this.content = ''; } MailSender.prototype.send = function() { //send body } return { getInstance : function() { if (instance == null) { instance = new MailSender(); } return instance; } } })();
上記はこの章の全内容です。その他の関連チュートリアルについては、JavaScript ビデオ チュートリアル
をご覧ください。//一样用法 var mail = Singleton.getInstance(); mail.to = 'toname#mail.com'; mail.title = '闭包式 单件模式发送'; mail.content = '发送内容'; mail.send();