PHPのデザインパターンとは何ですか?シングルトンとは何ですか?使い方?

慕斯
リリース: 2023-03-10 19:52:02
オリジナル
2450 人が閲覧しました

前回の記事では「PHP を使用して MVC フレームワークを作成する一般的なプロセス 」を紹介しましたが、この記事では引き続き PHP のデザイン パターンとは何なのかを紹介します。シングルトンとは何ですか?使い方?一定の参考値があるので、困っている友達が参考になれば幸いです。

PHPのデザインパターンとは何ですか?シングルトンとは何ですか?使い方?

PHP の高度な実践 - デザイン パターン

デザイン パターンの概要

デザイン パターン (Designpattern) は、 - 繰り返し使用され、ほとんどの人に知られており、カタログ化されているコード設計経験の要約。デザイン パターンを使用する目的は、コードを再利用し、コードを他の人が理解しやすくし、コードの信頼性を確保することです。デザイン パターンは、自分自身、他者、およびシステムにとって Win-Win であることに疑いの余地はありません。デザイン パターンにより、コードのコンパイルが真のエンジニアリングになります。デザイン パターンは、建物のレンガや石と同じように、ソフトウェア エンジニアリングの基礎です。

パターンの古典的な定義: 各パターンは、環境内で常に発生する問題を説明し、その後、問題の解決策を説明します。このようにして、再利用できます。同じ作業を繰り返すことなく、既存のソリューションを何度も実行できます。つまり、パターンは特定の環境における問題の解決策です。

現在 2 つの学校があります。デザイン パターンの使用を推奨する人もいれば、デザイン パターンの使用を推奨しない人もいます。

凝集度が高く、結合度が低い

クラス内の集約度は非常に高くなければなりません

クラス間の関係は最小限にする必要があります

まず、コードを例に挙げてみましょう。 create 新しいファイルを作成し、次にクラスを作成し、次に 2 つのオブジェクトを作成します。今作成する 2 つのオブジェクトが同じ空間、同じオブジェクトであるかどうかを if ステートメントで判断する必要があります。コードは次のとおりです。

<?php
class Dog
{
}
$dog1 = new Dog();
$dog2 = new Dog();
if ($dog1=== $dog2) {
echo &#39;这是同一个对象&#39;;
} else {
echo &#39;这是两个不同的对象&#39;;
}
ログイン後にコピー

結果は次のとおりです:

結果は、これらが 2 つの異なるオブジェクトであることを示しているため、シングルトンを作成する必要があります。

PHPのデザインパターンとは何ですか?シングルトンとは何ですか?使い方?

コードは次のとおりです:

private function_construct( ) { }
//静态属性保存单例对象
static private $instance;
//通过静态方法来创建单例对象
static public function getInstance()
{
/ /判断$instance是否为空,如果为空,则new- 一个对象
如果不会空,则直接返回
if( !self: :$instance) {
self: :$instance = new self();
}
return self: : $instance ;
}
ログイン後にコピー

1. シングルトン (単一インスタンス)

このクラスは 1 つのオブジェクトのみ作成できます。 。 PHP は主にデータベース アプリケーションに適用されます。各アプリケーションでは多数のデータベース操作が行われます。シングルトン モードを使用すると、

は新しい操作によって消費される大量のリソースを回避できます。

手順:

#1. コンストラクターをプライベートとしてマークする必要があります

#2. クラス インスタンスの静的メンバー変数を保存します 3. インスタンスの取得 パブリック静的メソッド

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPのデザインパターンとは何ですか?シングルトンとは何ですか?使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!