ホームページ  >  記事  >  バックエンド開発  >  PHP デザイン パターンは一般的に使用されていますか?

PHP デザイン パターンは一般的に使用されていますか?

(*-*)浩
(*-*)浩オリジナル
2019-09-19 09:29:092203ブラウズ

デザイン パターン

PHP デザイン パターンは一般的に使用されていますか?

##デザイン パターンとは、コード設計の経験をまとめたものです。繰り返し使用され、ほとんどの人に知られており、分類され、カタログ化されています。デザイン パターンを使用する目的は、コードを再利用し、コードを他の人が理解しやすくし、コードの信頼性を確保することです。 デザイン パターンが自分自身、他者、システムにとって Win-Win であることは疑いの余地がありません。デザイン パターンによりコーディングが真のエンジニアリングになります。デザイン パターンは、建物の構造と同じように、ソフトウェア エンジニアリングの基礎です。 (推奨学習: PHP プログラミング入門から習熟まで )

なぜデザイン パターン (Design Pattern) を提唱する必要があるのでしょうか?

基本的な理由は、コードを再利用して保守性を向上させることです。

デザイン パターンの 6 つの原則

オープンとクローズの原則: クラス、モジュール、関数などのソフトウェア エンティティは、拡張に対してオープンであり、変更に対してクローズである必要があります。

Richter 置換原則: 基本クラスを参照するすべての場所は、そのサブクラスのオブジェクトを透過的に使用できなければなりません。

依存関係逆転原則: 高レベルのモジュールは低レベルのモジュールに依存すべきではありません。 、両方ともその抽象化に依存する必要があり、抽象化は詳細に依存すべきではなく、詳細は抽象化に依存する必要があります。

単一責任の原則: クラス変更の理由は複数あってはならない。平たく言えば、クラスは 1 つの責任だけを担当します。

インターフェイス分離の原則: クライアントは、必要のないインターフェイスに依存すべきではありません。あるクラスの別のクラスに対する依存関係は、最小のインターフェイスに基づく必要があります。

デメテルの法則: オブジェクトは、他のオブジェクトに関する最小限の知識を保持する必要があります。

デザイン パターンは、コードの再利用を実現し、保守性を高めるためにこれらの原則を実装します。

シングル ケース モード

いわゆるシングルトン モードは、特定のクラスのインスタンスが 1 つだけ存在することを保証し、自身をインスタンス化し、このインスタンスをユーザーに提供します。システム全体、つまりアプリケーション内 このクラスのインスタンスはプログラム内に 1 つだけ存在します。

通常、シングルトン モードは、オブジェクトへのデータベース アクセスのみを許可するインスタンスで使用され、複数のデータベース接続が開かれないようにします。シングルトン モードは一般的な設計パターンです。コンピュータ システムでは、スレッド プール、キャッシュ、ログ オブジェクト、ダイアログボックス、プリンター、データベース操作、およびグラフィックス カード ドライバーは、多くの場合シングルトンとして設計されます。

シングルトン モードには次の 3 つの特徴があります。

1.インスタンスは 1 つだけ存在でき、コンストラクターが必要で、private

2 とマークされている必要があります。このインスタンスを自分で作成し、クラス

3のインスタンスを保存する静的メンバー変数を用意する必要があります。このインスタンスは他のオブジェクトに提供する必要があり、このインスタンスにアクセスするためのパブリック静的メソッドが必要です。

シングルトン クラスは他のクラスで直接インスタンス化できませんが、それ自体でのみインスタンス化できます。インスタンスのコピーは作成されませんが、シングルトン クラス内に格納されているインスタンスへの参照を返します

では、なぜ PHP シングルトン パターンを使用するのでしょうか?

PHP の主要なアプリケーション シナリオの 1 つは、アプリケーションがデータベースを扱うシナリオです。アプリケーションでは、多数のデータベース操作が発生します。データベース ハンドルの接続動作については、データベースに対してシングルトン モードを使用すると、大量の操作を回避できます。新しい操作が行われるたびにシステム リソースとメモリ リソースが消費されるためです。

以上がPHP デザイン パターンは一般的に使用されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。