シングルトン パターンの基本構造:
MyNamespace .Singleton = function () {
return {};
例:
MyNamespace.Singleton = (function() {
return { // パブリック メンバー。
publicAttribute1: true,
publicAttribute2: 10,
publicMethod1: function() {
...
},
publicMethod2: function(args) {
...
}
};
})( );
しかし、コードがロードされるとすぐに上記のシングルトンが作成されます。 C# でシングルトンを実装する方法を想像してください:) 次のパターンを使用します:
MyNamespace.Singleton = (function() {
functionconstructor() { // 通常のシングルトン コードはすべてここにあります。
...
}
return {
getInstance: function() {
// ここに制御コードが入ります。
}
}
})(); 具体的には、シングルトン Put を作成します。コンストラクター内のコードを作成し、初めて呼び出されたときにインスタンス化します。
完全なコードは次のとおりです。
コードをコピーします
コードは次のとおりです: MyNamespace.Singleton = (function() { var uniqueInstance; // 単一のインスタンスを保持するプライベート属性。
functionconstructor() { // 通常のシングルトン コードはすべてここに記述されます。
...
}
return {
getInstance: function() {
if(!uniqueInstance) { // の場合のみインスタンス化します。インスタンスが存在しません。