ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript デザインパターンのシングルトンパターンの紹介

JavaScript デザインパターンのシングルトンパターンの紹介

PHPz
PHPzオリジナル
2016-05-16 16:24:051095ブラウズ

この記事では主に JavaScript デザイン パターンのシングルトン モードを紹介します。シングルトン モードは、静的アクセスでインスタンス化されたオブジェクトであり、既にインスタンス化されているか、これからインスタンス化されるオブジェクトにのみアクセスできます。変革を必要とする友人はそれを参照できます。

シングルピース モードの説明

1. 説明: シングルピース モードは、静的アクセスでインスタンス化されたオブジェクトです。 、このオブジェクトには、インスタンス化された、またはインスタンス化されるオブジェクトである、Java、.Net C#、その他のサーバー側動的言語などのオブジェクト指向言語を介してのみアクセスできます。クラス操作がスムーズに進行し、並列処理を回避できます。

2. シングルトン モードの利点:

1) 頻繁なメモリ操作の高速化とメモリ占有を回避します。メモリ;
2) 、大規模システムにおけるオブジェクトのオーバーヘッドを最小限に抑える;
3) 前述のように、並列処理によって引き起こされるデータの異常を回避するために、特定の種類の操作が確実に実行されるようにすることができます。 🎜>

もちろん、上記の利点はすべてサーバー側の言語で説明されています。 JavaScript のような弱い型付け言語では、スクリプトはすべてクライアント側で操作され、操作上の競合の問題は発生しません。つまり、サーバー全体を使用しているのは自分だけであることと同じであるため、それほど心配する必要はありません。心配しないでください。データを誰が操作するかという問題です。

使用法:

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