ホームページ  >  記事  >  php教程  >  PHP の設計パターンとカップリングとポリモーフィズム

PHP の設計パターンとカップリングとポリモーフィズム

WBOY
WBOYオリジナル
2016-06-21 08:46:53894ブラウズ

デザインパターンとは:

デザイン パターンは、実際の信頼できるデザインを使用してコードを編成する方法を教えるテンプレートです。

すべてのデザイン パターンには、名前、問題ステートメント、解決策などの共通の特徴があります。

1. 設計パターンの識別は、他のプログラマーがあまり深く勉強しなくてもコードの目的をすぐに理解できるようにするために重要です (少なくともこの識別を通じて、プログラマーはこのパターンに精通します)。

2. 問題の説明は、このモデルの適用分野を説明するために使用されます。

3. ソリューションでは、このモデルの実行について説明します。設計パターンについて十分に議論するには、モデルを使用する利点と欠点が含まれている必要があります。

たとえば、店で購入するシャツはコード ライブラリです。その色、スタイル、サイズはデザイナーとメーカーによって決まりますが、それはあなたのニーズを満たします。ただし、店内に気に入ったものがない場合は、自分でシャツを作成することもできます(形状をデザインし、生地を選択し、縫い合わせてもらいます)。ただし、仕立て屋ではない場合は、適切なパターンを見つけて、そのパターンに従って独自のシャツをデザインするのは簡単かもしれません。モックアップを使用すると、適切なデザインのシャツを短時間で作成できます。

php には合計 23 の伝統的なデザイン パターンがあります。

Interpreter (インタープリターモード)、Factory (ファクトリーモード)、Facade (外観モード)、Decorator (装飾モード)、Builder (ビルダーモード)

Adapter (アダプター モード)、Template (テンプレート モード)、Command (コマンド チェーン モード)、Singleton (シングル ケース モード)、Observer (オブザーバー モード)

Strategy (ストラテジーモード)、Visitor (ビジターモード)、Memento (メモモード)、Prototype (プロトタイプモード)、Mediator (メディエーターモード)

FlyWeight (フライウェイト モード)、Chain Of Responsibility (責任連鎖モード)、Bridge (ブリッジ モード)、Proxy (エージェント モード)、State (ステート モード)

Composite (合成モード)、Interator (反復子モード)、DAO (データ アクセス オブジェクト モード)、Delegation (委任モード)

PHP には 5 つの一般的なデザイン パターンがあります

1. ファクトリーモード 2. シングルトンモード (単一要素モード) 3. オブザーバーモード 4. コマンドチェーンモード 5. ストラテジーモード

カップリングとは:

結合は、結合度とも呼ばれ、モジュール間の関連度の尺度です。結合の強さは、モジュールとのインターフェイスの複雑さ、モジュールの呼び出し方法、インターフェイスを介して転送されるデータの量によって異なります。モジュール間の結合度とは、モジュール間の制御関係、呼び出し関係、データ転送関係などの依存関係を指す。モジュール間の接続が増えるほど、結合が強くなり、独立性が悪くなります。ソフトウェア設計では、通常、結合と結合度がモジュールの独立性の度合いを測定する基準として使用されます。モジュールを分割する基準の 1 つは、凝集性が高く結合性が低いことです

ポリモーフィズムとは:

「オブジェクト指向プログラミング言語の場合、ポリタイプ化は 3 番目に基本的な機能です (最初の 2 つはデータの抽象化と継承です。)

「ポリモーフィズム」は、別の観点からインターフェースを特定の実装詳細から分離します。つまり、「何を」モジュールと「どのように行うか」モジュールの分離を実現します。ポリモーフィズムの概念を使用すると、コードの構成と可読性を向上させることができます。また、「拡張しやすい」プログラムも作成できます。これらは、プロジェクトの作成中と、新しい機能を追加する必要がある場合の両方で、簡単に「成長」する可能性があります。





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