ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript はシングルトン モードを実装します_javascript スキル

JavaScript はシングルトン モードを実装します_javascript スキル

WBOY
リリース: 2016-05-16 15:18:24
オリジナル
1059 人が閲覧しました

シングルトン モードはモナド モードとも呼ばれ、より一般的にはシングルトン モードとも呼ばれます。これは比較的単純ですが、ソフトウェア設計で最も一般的に使用される設計パターンです。

シングルトン モードの概要:

シングルトン パターンを適用する場合、シングルトンを生成するクラスは、インスタンスが 1 つだけ存在することを保証する必要があります。多くの場合、システム全体の動作を調整するには、システム全体に 1 つのグローバル オブジェクトだけが必要です。例えば、システム全体の設定ファイルには、設定データを一元的に読み込み、変更するためのシングルトンオブジェクトがあり、他のオブジェクトも設定データを必要とする場合には、このシングルトンオブジェクトを通じて設定データを取得することにより、複雑な設定を簡素化することができます。環境の構成管理。

シングルトン パターンの考え方は次のとおりです。クラスはオブジェクトへの参照 (常に同じです) とインスタンスを取得するメソッド (静的メソッド、通常は getInstance 名を使用します) を返すことができます。次に、このメソッドを呼び出すと、クラスが保持する参照が空でない場合はその参照が返され、それ以外の場合はクラスのインスタンスが作成され、そのインスタンス参照がクラスが保持する参照に割り当てられます。それから戻ってきました。同時に、クラスのコンストラクターをプライベート メソッドとして定義して、他の関数がコンストラクターを使用してオブジェクトをインスタンス化することを防ぎ、クラスの静的メソッドを通じてのみクラスのインスタンスを取得します。

一般に、JavaScript は新しいオブジェクトが作成されるたびにインスタンスを生成し、そのインスタンスは別のアドレスを指します。このように:

(function(){
function Person(name){
this.name = name;
}
Person.prototype.work = function(){
console.log(this.name + " is working");
}
var p1 = new Person("Darren");
p1.work();
var p2 = new Person("Jack");
p2.work();
}());
ログイン後にコピー

上記では、新しい person オブジェクトが作成されるたびに、オブジェクトは異なります。

JavaScript でシングルトン パターンを実装するにはどうすればよいですか?

-- オブジェクトを生成するときは、まずオブジェクトが存在するかどうかを確認します。存在する場合、オブジェクトは生成されません。存在しない場合、オブジェクトは生成されます。

(function(){
var PersonSingleton = (function(){
var instance;
function init(){
return {
name: 'Anonymous',
work: function(){
console.log(this.name + ' working');
}
};
}
return {
getInstance: function(){
if(!instantiated){
instantiated = init();
}
return instantiated;
}
}
})();
var p1 = PersonSingleton.getInstance();
p1.work();
var p2 = PersonSingleton.getInstance();
p2.work();
}());
ログイン後にコピー

上記では、PsonSingleton オブジェクトの getInstance メソッドを通じて取得されるインスタンスは毎回同じです。

ここで紹介した JavaScript シングルトン モードに関する関連知識は以上です。皆様のお役に立てれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート