デザイン パターンは Java アーキテクトだけのものですか? 少なくとも、あなたは常にそう思っているかもしれません。実際、デザインパターンは誰にとっても役立ちます。これらのツールが「建築宇宙飛行士」の所有物でないとしたら、それは何でしょうか?これらが PHP アプリケーションで役立つ理由。
今日はシングルトン パターンを一緒に学びましょう。
パターンを学ぶには、アプリケーションのシナリオを知る必要があります。そうでなければ、どのような状況でそれを使用するかが分からない場合、武術の動きを学ぶのと同じであり、それは無駄な努力ではないでしょうか。
シングルトン モードの場合、最も一般的なアプリケーションの 1 つはデータベース接続です。 Web ページを開くたびにリンクが作成される場合、この消費は非常に無駄になります。したがって、シングルトン モードを使用して、システムが必要な場合にのみ新しい接続を確立するようにする必要があります。
擬似コードを使用してシングルトン パターンを記述する場合は、次のように記述できます。
if(接続が存在します){
このリンクに戻る
}それ以外{
新しいリンクを作成します
} }
しかし、この実装には明らかに問題があります。このリンクを保存して、外部からアクセスできるようにすると同時に、外部からの破壊を防ぐ方法です。これをphpで実装すれば非常に簡単です。コードの一部を見てみましょう。
リーリー
なぜ建設業者を民営化する必要があるのでしょうか?これはとても良い質問です。皆さんもこのような質問をすることを歓迎します。
まず、シングルトンとして、外部から誤って新しいインスタンスが作成されることを避けるためです。これは、内部的にインスタンスを作成することで実現できます。さらに、内部メソッドには、内部変数へのアクセスにおいて固有の利点があります。
実際、インスタンスの結果をクラス内に保存できるため、次回この値の存在が検出されたときに、値を再作成することなく取り出して直接使用できます。
もちろん、クローン作成を防ぐために空の __clone(){} メソッドを作成する本もいくつか見たことがありますが、これは良いことです。飾り付けは特定のプロジェクトに任せます。
最後に、このシングルトンの使用方法を見てみましょう。
リーリー
とても簡単なことではありませんか?
また、どのメソッドを静的にするべきで、どのメソッドを使用しないほうがよいかについては、メソッド内で $this 変数にアクセスする場合は静的メソッドを使用すべきではなく、その逆も同様であるというのが私の考えです。つまり、オブジェクトをインスタンス化せずに静的メソッドを使用できます。
次回はファクトリーモデルを一緒に学びましょう
以上、デザインパターン(1)の内容も含めてデザインパターンの学習について紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。