ホームページ  >  記事  >  バックエンド開発  >  私と一緒にデザイン パターンを学びましょう (—)、デザイン パターンを学ぶ_PHP チュートリアル

私と一緒にデザイン パターンを学びましょう (—)、デザイン パターンを学ぶ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:17906ブラウズ

Learn design pattern with me (—), learn design pattern

今日はシングルトンパターンを一緒に学びましょう:

パターンを学ぶには、アプリケーションのシナリオを知る必要があります。そうでなければ、どのような状況でそれを使用するかが分からない場合、武術の動きを学ぶのと同じであり、それは無駄な努力ではないでしょうか。

シングルトン モードの場合、最も一般的なアプリケーションの 1 つはデータベース接続です。 Web ページを開くたびにリンクが作成される場合、この消費は非常に無駄になります。したがって、シングルトン モードを使用して、システムが必要な場合にのみ新しい接続を確立するようにする必要があります。

擬似コードを使用してシングルトン パターンを記述する場合は、次のように記述できます:

if(接続が存在する){

このリンクに戻る

}その他{

新しいリンクを作成します

}

しかし、この実装には明らかに問題があります。それは、外部からアクセスできると同時に外部から破壊されないように、このリンクを保存する方法です。これをphpで実装すれば非常に簡単です。コードの一部を見てみましょう:

リーリー

なぜ建設業者を民営化する必要があるのか​​?これはとても良い質問です。皆さんもこのような質問をすることを歓迎します。

まず第一に、シングルトンとして、外部から誤って新しいインスタンスが作成されることを避けるためです。これは、内部的にインスタンスを作成することで実現できます。さらに、内部メソッドには、内部変数へのアクセスにおいて固有の利点があります。

実際、インスタンスの結果をクラス内に保存できるので、次回この値の存在が検出されたときに、再作成することなく取り出して直接使用できます。

もちろん、いくつかの本で、クローン作成を防ぐために空の __clone(){} メソッドが作成されているのを見ましたが、これは良いことです。飾り付けは特定のプロジェクトに任せます。

最後に、このシングルトンの使用方法を見てみましょう:

リーリー

とても簡単なことではありませんか?

さらに、どのメソッドを静的にし、どのメソッドを使用すべきではないかについては、$this 変数が内部でアクセスされる場合は静的メソッドを使用すべきではなく、その逆も同様であるというのが私の考えです。つまり、オブジェクトをインスタンス化せずに静的メソッドを使用できます。

次回はファクトリーモデルを一緒に学びましょう

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/916826.html技術記事私と一緒にデザイン パターンを学びましょう (—)、デザイン パターンを学びましょう。今日はシングルトン パターンを一緒に学びます。パターンを学ぶには、アプリケーション シナリオを知る必要があります。それ以外の場合は、教科を学ぶようなものです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。