基本的な質問があります:
PHP を開発しているときによく疑問に思うことが exampleclass::getInstance()
あります。new exampleclass()
いつどちらを使用する必要がありますか? それらの大きな違いは何ですか?その問題から「ベストプラクティス」を引き出したいだけです。
ご協力いただきありがとうございます!
通常、オブジェクトの同じインスタンスを常に使用する必要があるシングルトン パターンgetInstance()
の場合に使用されます。この場合、通常はプライベート コンストラクターが最初の呼び出しでのみ呼び出されます。getInstance
は、呼び出しごとにこのクラスのnew ExampleClass()
新しいインスタンスを作成します。
メソッドを実装するクラスgetInstance()
は通常、singletonです。この場合、基本的には使用しないでくださいnew exampleclass()
。(実際には、コンストラクタを直接呼び出すことは結局禁止されるべきです。)
シングルトンは、プログラムの存続期間中にそのクラスのインスタンスが最大で 1 つ存在すると想定します。より多くのインスタンスがある場合、それらは互いに競合する可能性があり、いくつかの醜い問題を引き起こす可能性があります. (たとえば、シングルトンは、グローバルに利用可能な関数やメソッドにアクセスしたり、別のモジュールや別のネットワークの場所への接続を開いたりすることができます。2 つのインスタンスが互いを認識せずに同じ変数に書き込むと、システムは書き込みを行う状態になる可能性があります。仕事を続ける方法がわからない。)