0

我正在尝试使用一个名为 Factory 的集中类来集中构建所有视图实例。已经在模型内部实例化了工厂类。但后来,这种结构开始产生问题。所以在这里问。这样的“工厂”类应该放在 mvc 的什么地方。他们应该如何与模型、视图和控制器交互?

4

1 回答 1

1

使用 MVC 结构并不意味着您需要忘记其他最佳实践。这只是一种将应用程序结构化为 3 层(或在 RL 的情况下为 4 层)的方式,这很有意义并推动您编写干净的代码。

模型永远不应该做任何与视图相关的事情。生成显示对象的工厂应放置​​在视图层中。何时以及如何实例化、初始化和使用该工厂取决于许多因素。由于您使用的是 DI/IOC 框架,因此实例化的明显选择是设置注入规则。至于哪些部分将使用工厂,有多种可能性:它可以由上下文视图中介传递到上下文视图。或者你可以选择专门的命令来完成繁重的工作。或者您可以将其用法封装在一个单独的类中,该类监听系统事件并做出相应的响应(一种无视图中介)

一件小事:Factory这个类的名称太笼统了。它根本没有传达任何意图。您应该为您的类选择有意义的描述性名称。如果工厂创建视图实例,至少它的名称中应该包含“视图”。您必须找到一个足够具体的名称,但不依赖于某个实现。这在一定程度上取决于班级运作的级别。

于 2013-01-07T08:50:49.263 回答