PHPのデザインパターンとは何ですか?シングルトンとは何ですか?使い方?
前回の記事では「PHP を使用して MVC フレームワークを作成する一般的なプロセス 」を紹介しましたが、この記事では引き続き PHP のデザイン パターンとは何なのかを紹介します。シングルトンとは何ですか?使い方?一定の参考値があるので、困っている友達が参考になれば幸いです。
PHP の高度な実践 - デザイン パターン
デザイン パターンの概要
デザイン パターン (Designpattern) は、 - 繰り返し使用され、ほとんどの人に知られており、カタログ化されているコード設計経験の要約。デザイン パターンを使用する目的は、コードを再利用し、コードを他の人が理解しやすくし、コードの信頼性を確保することです。デザイン パターンは、自分自身、他者、およびシステムにとって Win-Win であることに疑いの余地はありません。デザイン パターンにより、コードのコンパイルが真のエンジニアリングになります。デザイン パターンは、建物のレンガや石と同じように、ソフトウェア エンジニアリングの基礎です。
パターンの古典的な定義: 各パターンは、環境内で常に発生する問題を説明し、その後、問題の解決策を説明します。このようにして、再利用できます。同じ作業を繰り返すことなく、既存のソリューションを何度も実行できます。つまり、パターンは特定の環境における問題の解決策です。
現在 2 つの学校があります。デザイン パターンの使用を推奨する人もいれば、デザイン パターンの使用を推奨しない人もいます。
凝集度が高く、結合度が低い
クラス内の集約度は非常に高くなければなりません
クラス間の関係は最小限にする必要があります
まず、コードを例に挙げてみましょう。 create 新しいファイルを作成し、次にクラスを作成し、次に 2 つのオブジェクトを作成します。今作成する 2 つのオブジェクトが同じ空間、同じオブジェクトであるかどうかを if ステートメントで判断する必要があります。コードは次のとおりです。
<?php class Dog { } $dog1 = new Dog(); $dog2 = new Dog(); if ($dog1=== $dog2) { echo '这是同一个对象'; } else { echo '这是两个不同的对象'; }
結果は次のとおりです:
結果は、これらが 2 つの異なるオブジェクトであることを示しているため、シングルトンを作成する必要があります。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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違いは、デザイン パターンがソフトウェア設計における一般的な問題に対する抽象的な解決策を定義し、ファクトリ パターンなどのクラスとオブジェクト間の相互作用に焦点を当てていることです。アーキテクチャ パターンは、階層化アーキテクチャなどのシステム コンポーネントの編成と相互作用に焦点を当てて、システム構造とモジュールの間の関係を定義します。

デコレータ パターンは、元のクラスを変更せずにオブジェクトの機能を動的に追加できる構造設計パターンです。抽象コンポーネント、具象コンポーネント、抽象デコレータ、具象デコレータの連携によって実装され、ニーズの変化に合わせてクラス機能を柔軟に拡張できます。この例では、ミルクとモカのデコレーターが総額 2.29 ドルで Espresso に追加されており、オブジェクトの動作を動的に変更するデコレーター パターンの力を示しています。

アダプター パターンは、互換性のないオブジェクトが連携できるようにする構造設計パターンであり、オブジェクトがスムーズに対話できるように、あるインターフェイスを別のインターフェイスに変換します。オブジェクト アダプタは、適応されたオブジェクトを含むアダプタ オブジェクトを作成し、ターゲット インターフェイスを実装することにより、アダプタ パターンを実装します。実際のケースでは、クライアント (MediaPlayer など) はアダプター モードを通じて高度な形式のメディア (VLC など) を再生できますが、クライアント自体は通常のメディア形式 (MP3 など) のみをサポートします。

1. ファクトリ パターン: オブジェクト作成とビジネス ロジックを分離し、ファクトリ クラスを通じて指定された型のオブジェクトを作成します。 2. オブザーバー パターン: サブジェクト オブジェクトが状態の変化をオブザーバー オブジェクトに通知できるようにし、疎結合とオブザーバー パターンを実現します。

TDD は、高品質の PHP コードを作成するために使用されます。その手順には、テスト ケースを作成し、期待される機能を記述し、テスト ケースを失敗させることが含まれます。過度な最適化や詳細な設計を行わずに、テスト ケースのみが通過するようにコードを記述します。テスト ケースが合格したら、コードを最適化およびリファクタリングして、可読性、保守性、およびスケーラビリティを向上させます。

デザイン パターンは、再利用可能で拡張可能なソリューションを提供することで、コード メンテナンスの課題を解決します。 オブザーバー パターン: オブジェクトがイベントをサブスクライブし、イベントが発生したときに通知を受信できるようにします。ファクトリ パターン: 具象クラスに依存せずにオブジェクトを作成するための集中的な方法を提供します。シングルトン パターン: クラスには、グローバルにアクセス可能なオブジェクトの作成に使用されるインスタンスが 1 つだけ存在することが保証されます。

Java フレームワークでデザイン パターンを使用する利点には、コードの可読性、保守性、拡張性の向上が含まれます。欠点としては、複雑さ、パフォーマンスのオーバーヘッド、使いすぎによる学習曲線の急上昇などが挙げられます。実際のケース: プロキシ モードはオブジェクトの遅延読み込みに使用されます。デザイン パターンを賢く使用して、その利点を活用し、欠点を最小限に抑えます。

Guice フレームワークは、次のような多くの設計パターンを適用します。 シングルトン パターン: @Singleton アノテーションによってクラスのインスタンスが 1 つだけであることを保証します。ファクトリ メソッド パターン: @Provides アノテーションを使用してファクトリ メソッドを作成し、依存関係の注入中にオブジェクト インスタンスを取得します。戦略モード: アルゴリズムをさまざまな戦略クラスにカプセル化し、@Named アノテーションを通じて特定の戦略を指定します。
