依存性反転 (DIP): DIP は設計上のアイデアであり、従来のソフトウェア設計では、下位層のコードが変更されると、上位層のコードも変更されます。 、DIP 設計のアイデアでは、定義によって上位層のインターフェイスを定義し、下位層がこのインターフェイスを実装することにより、結合度を低減する必要があります。
制御の反転 (IOC): IOC は DIP の特定のアイデアであり、上位レイヤーが依存する下位レイヤーはサードパーティによって実装されます。言い換えれば、カテゴリ A で必要な外部リソース C を取得するためのイニシアチブです。この状況をフォワードと呼びます。では、逆とは何でしょうか?つまり、クラス A は積極的に C を取得するのではなく、IoC/DI コンテナが C のインスタンスを取得するのを受動的に待ち、それを逆にクラス A に注入します。
Dependency Injection (DI): DI は、別のクラスに依存するクラスのインスタンス化をそのクラスの外部実装に移動する IOC の設計パターンです。
依存性注入は次の実装です:
1. インターフェイスまたは抽象クラスを定義します (これは電子メール送信の例です)
interface Mail{ public function send(); }
2. さまざまなタイプの送信がインターフェイスを実装します
class Email implements Mail() { public function send() { //发送Email } }
3 .
以上が依存性注入とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。