选择我的非贫血域模型的视图控制器的实现

时间:2012-01-28 12:08:41

标签: model-view-controller oop design-patterns model

标题可能不容易理解,但在我看来,这是处理智能模型时的一个基本设计问题。

我有一个模型对象的层次结构,代表不同类型的文档。 假设我有一个带有不同按钮的视图,每个按钮都会打开底层对象模型的文档。当我单击一个按钮时,我必须显示一个视图,其控制器实现仅依赖于底层模型对象类。我该如何实现这个实现? (它可能是在按钮的实现中,但问题就变成了我如何获得按钮的实现)

它应该是一个工厂,将我的模型的类型作为输入并返回我的视图控制器吗?应该是我的模型知道如何构建其控制器(看起来很脏吗?)?我应该使用作文吗?还有别的吗?

我希望我足够清楚。我有点挣扎!

1 个答案:

答案 0 :(得分:0)

您的问题太抽象,无法提供具体建议。 MVC模式以多种形式和许多技术出现。对于一个网页,它将有一个形状,对于WPF应用程序,它将有另一个。通常,存在“视图优先”和“控制器优先”方法。您可以从任何一个开始,看看它是否适合您的问题,如果不是 - 重构。

您可以探索的另一个领域是现代复合应用程序框架领域,它提供了开箱即用的模块化MVC \ MVVM解决方案。如果您正在为Web编写,请阅读ASP.NET MVC及其最佳实践。如果您正在为WPF编写,请阅读有关MVVM方法的内容,并查看Prism。您可能会发现现有工具已经解决了您的问题。