3

まず第一に、私の悪い英語で申し訳ありませんが、私の言っていることを理解していただければ幸いです。

これが私の問題です:

標準のルーター、コントローラー、モデル (サービス) レイヤー、およびある種の db コネクタを含む MVC アプリケーションがあるとします。
モデル レイヤーはデータベース コネクタに依存し、コントローラーはモデル/サービスに依存し、最上位の「アプリケーション」クラスはルーターとコントローラーに依存します。
私のオブジェクト階層は次のようになります。

App -> ControllerFactory -> ServiceFactory -> DAO -> DbConnection

おそらく、上に書かれたものはこれまでで最高のアプリケーション アーキテクチャのようには見えませんが、もう 1 つのことに注目したいと思い
ます。App クラスをインスタンス化しようとしているときは、インスタンス化されたクラスにすべての依存関係を渡す必要があります。クラスの依存関係には、独自の依存関係などがあります。
その結果、すべての階層スタックが一度にインスタンス化されます。しかし、場合によってはデータベースにアクセスする必要がない場合はどうでしょう。モデルの相互作用なしで静的テンプレートをレンダリングするために一部のコントローラーが使用されている場合はどうなりますか?
つまり、クラスが独自の依存関係を必要としない (場合によっては必要な場合がある) 特別なケースがある場合はどうなるでしょうか? 依存関係を条件付きで注入する必要がありますか?
私はこの時点で本当に立ち往生していて、何をすべきかわかりません。

4

2 に答える 2