javascriptでシングルトンを作成する2つの方法について読んでいます。単純なオブジェクトリテラルの方法と、プライベート変数を使用する場合はクロージャ手法を使用する方法です。
たとえば、効用関数を作成したいと思っています。
Singleton(classname);
どのクラスでも-「コンストラクター関数」ここで引数として渡すSingletonメソッドは、このクラスをSingletonオブジェクトに変換します。さらにnew Classname()
、誰かが新しいclassname()を再度起動した場合、彼/彼女はいくつかを取得します。new Error ( "Already instantiated once, this is Singleton" );
ユースケースは以下の通りです-
function Circle() {this.name = "Circle";}
SingleTon(Circle);
var circle1 = new Circle(); // returns the circle instance
var circle2 = new Circle(); // throws Error "Already instantiated once, this is Singleton"
ここで「シングルトン」メソッドを定義しようとしています。
getInstanceメソッドを使用して--Singleton.getInstance(Circle)などのインスタンスを取得する同様の例を見てきましたが、「新しい」方法でインスタンスを作成する習慣のある別のプログラマーがしようとする上記の特定の質問を探しています彼のコードのどこかで2回目の起動new Circle();
を行い、エラーを受け取ります。
この方法でシングルトンを作成することは1つの問題ですが、主な問題は「エラー」をスローすることです。私の理解では、Circleコンストラクターをシングルトン関数のどこかで変更する必要があります。これを実現する方法がわかりません。
解決策はありますか?
前もって感謝します !!