この記事では、オブジェクト指向 PHP の 5 つの主要原則である依存関係反転原則 (DIP) を主に紹介し、依存関係反転原則の概念と原理を簡単に説明し、PHP 依存関係反転原則の関連する定義と使用方法を分析します。この記事では、オブジェクト指向 PHP の 5 つの主要な原則の依存関係反転原則 (DIP) を例を示して説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
依存関係の逆転とは何ですか?簡単に言うと、
依存関係を依存関係インターフェイスに反転するということです。具体的な概念は次のとおりです:
1. 上位モジュールはすべて抽象化 (親) に依存すべきではありません。クラスはサブクラスに依存できません。すべてがサブクラスに依存します) (抽象クラスの場合)2. 抽象化は具体性に依存することはできず、具体性は抽象化に依存する必要があります。
ここでいうインターフェースは、狭義のインターフェース
ではないことに注意してください。なぜインターフェースに依存するのでしょうか?インターフェイスは問題の抽象化を具体化しており、抽象化は一般に比較的安定しているか、比較的頻繁に変更されないため、具象は変更可能です。したがって、依存関係の抽象化は、コード拡張とランタイム バインディング (ポリモーフィズム) を実装するための基礎となります。抽象クラスのサブクラスが実装されている限り、そのクラスのすべてのユーザーがそれを使用できます。ここでは、スケーラビリティの概念が強調されます。通常、拡張性とは既知の動作の拡張を指しますが、インターフェイスについて話すときは、インターフェイスが相対的である必要があるとも言われます。これは、設計パターンがどれほど高度であっても、コードを変更せずに絶えず変化する状況を実現することは不可能であることを示しています。オブジェクト指向の 5 つの原則の中で、依存関係の逆転は理解と実装が最も難しいと思います。
ここでは従業員クラスを例に挙げます<?php interface employee { public function working(); } class teacher implements employee { public function working() { echo 'teaching...'; } } class coder implements employee { public function working() { echo 'coding...'; } } class workA { public function work() { $teacher = new teacher(); $teacher->working(); } } class workB { private $e; public function set(employee $e) { $this->e = $e; } public function work() { $this->e->working(); } } $worka = new workA; $worka->work(); $workb = new workB; $workb->set(new teacher()); $workb->work();
<bean scopre="prototype" class="cn.notebook.action.NotebookListOtherAction" id="notebookListOtherAction"> <property ref="userReplyService" name="userReplyService" /> <property ref="userService" name="userService" /> <property ref="permissionService" name="permissionService" /> <property ref="friendService" name="friendService" /> </bean>
1. 各上位クラスは、必要なサービスのインターフェイス宣言を提案し、下位クラスはこのインターフェイスを実装します。
2. 各高レベルのクラスは、この抽象インターフェイスを通じてサービスを使用します。
関連する推奨事項:
PHP の 5 つのオブジェクト指向原則のリスコフ置換原則 (LSP) の詳細な説明 - クロージャ原則 (OCP) の詳細な説明
以上がオブジェクト指向のPHP_phpスキルの5大原則であるDipendency Inversion Principle(DIP)の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。