标题可能不容易理解,但在我看来,这是处理智能模型时的一个基本设计问题。
我有一个模型对象的层次结构,代表不同类型的文档。 假设我有一个带有不同按钮的视图,每个按钮都会打开底层对象模型的文档。当我单击一个按钮时,我必须显示一个视图,其控制器实现仅依赖于底层模型对象类。我该如何实现这个实现? (它可能是在按钮的实现中,但问题就变成了我如何获得按钮的实现)
它应该是一个工厂,将我的模型的类型作为输入并返回我的视图控制器吗?应该是我的模型知道如何构建其控制器(看起来很脏吗?)?我应该使用作文吗?还有别的吗?
我希望我足够清楚。我有点挣扎!
答案 0 :(得分:0)
您的问题太抽象,无法提供具体建议。 MVC模式以多种形式和许多技术出现。对于一个网页,它将有一个形状,对于WPF应用程序,它将有另一个。通常,存在“视图优先”和“控制器优先”方法。您可以从任何一个开始,看看它是否适合您的问题,如果不是 - 重构。
您可以探索的另一个领域是现代复合应用程序框架领域,它提供了开箱即用的模块化MVC \ MVVM解决方案。如果您正在为Web编写,请阅读ASP.NET MVC及其最佳实践。如果您正在为WPF编写,请阅读有关MVVM方法的内容,并查看Prism。您可能会发现现有工具已经解决了您的问题。