Model view controller 选择了我的非贫血领域模型的视图控制器的实现

Model view controller 选择了我的非贫血领域模型的视图控制器的实现,model-view-controller,oop,design-patterns,model,Model View Controller,Oop,Design Patterns,Model,标题可能不容易理解,但在我看来,这是处理智能模型时的一个基本设计问题 我有一个表示不同类型文档的模型对象层次结构。 假设我有一个带有不同按钮的视图,每个按钮都会打开底层对象模型的文档。当我点击一个按钮时,我必须显示一个视图,它的控制器实现只依赖于底层的模型对象类。如何获得此实现? (可能是在按钮的实现中,但问题是如何实现按钮) 它是否应该是一个工厂,将模型的类型作为输入并返回视图控制器?应该是我的模型知道如何构建它的控制器(看起来脏兮兮?)?我应该用作文吗?还有别的吗 我希望我说得够清楚了。我有

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

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

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


我希望我说得够清楚了。我有点纠结于此

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


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

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

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