6

現在、Laravel-4 を使用して php で Web アプリを構築していますが、この質問は他の言語やフレームワークにも当てはまると思います。

依存性注入とファサードについて読み、それぞれの場合に必要なコーディングを理解しました。私がはっきりしていないのは、いつどちらを使用する必要があるかということです。

Facadeデザインパターンで依存性注入を使用する利点/欠点、または単純な理由は何ですか?

どうもありがとう

4

1 に答える 1

2

ファサードは、クラスとの対話を読みやすく、使いやすくするために使用されます。実際には既存のオブジェクトでメソッドを呼び出しているときに、クラスをインスタンス化せずに一連の静的メソッドを使用してクラスと対話しているようにコードを見せます。

依存性注入は、名前が示すように、クラスの依存性をクラスに注入するために使用されます。これは、コンストラクターを介して行われます。クラスを別のクラスに注入して、クラスが注入されたクラスの機能を使用できるようにします。これは、インターフェイスをクラスに注入し始めると強力になります。次に、インターフェイスに基づいてクラスを作成し、それをクラスに挿入できます。このように、注入されたクラスの動作を変更する必要がある場合は、インターフェイスに基づいて新しいクラスを作成し、それを注入できます。コードは注入されたインターフェイスに基づいているため、注入を受け取ったクラスは変更する必要なく引き続き動作することが保証されます。

これは、Eloquent エンジンのインターフェースに基づくリポジトリを作成する場合、Laravel 4 で最も顕著です。そのリポジトリをコントローラーに挿入し、インターフェイスのメソッドを使用して必要な情報を取得できます。その後、Redis のようなものに切り替えたい場合は、代わりに Redis エンジンを使用するそのインターフェイスに基づいて新しいクラスを作成し、そのクラスを注入するだけです。コントローラーを変更する必要はありません。

于 2013-09-18T15:38:27.337 に答える