0

Factory という集中型クラスを使用して、すべてのビュー インスタンスの構築を集中化しようとしています。モデル内のファクトリ クラスをインスタンス化していました。しかし、その後、この構造が問題を引き起こし始めました。そこでここで質問。このような「ファクトリー」クラスは、mvc 内のどこに配置する必要がありますか。モデル、ビュー、コントローラーとどのようにやり取りする必要がありますか?

4

1 に答える 1

1

MVC 構造を扱うからといって、他のベスト プラクティスを忘れる必要があるわけではありません。これは、アプリケーションを 3 つ (RL の場合は 4 つ) の層に構造化する方法にすぎず、意味があり、クリーンなコードを書くように促します。

モデルは、ビューに関連することを決して行うべきではありません。表示オブジェクトを生成するファクトリは、ビュー層に配置する必要があります。そのファクトリがいつ、どのようにインスタンス化、初期化、および使用されるかは、多くの要因によって異なります。DI/IOC フレームワークを使用しているため、インスタンス化の明らかな選択は、注入ルールを設定することです。ファクトリを使用するパーツについては、いくつかの可能性があります。コンテキスト ビュー メディエータによってコンテキスト ビューに渡すことができます。または、重労働を行うためのコマンドを専用にすることもできます。または、システムイベントをリッスンしてそれに応じて応答する別のクラスにその使用法をカプセル化することもできます (一種のビューレスメディエーター)。

ちょっとしたことですFactoryが、クラスの名前が一般的すぎます。意図が全く伝わらない。クラスには意味のあるわかりやすい名前を選択する必要があります。ファクトリがビュー インスタンスを作成する場合、少なくとも名前に「view」が含まれている必要があります。十分に具体的であるが、特定の実装に縛られない名前を見つける必要があります。クラスがどのレベルで運営されているかによって少し異なります。

于 2013-01-07T08:50:49.263 に答える