我正在尝试使用模型 - 视图 - 控制器来构建程序。
具体做法是:
我有一个状态管理器,一次一个地处理(初始化,加载,运行,卸载等)一组MVC。
在每个集合中,单个控制器包含对相关模型和视图的引用。
每个模型,视图和控制器都是从父类派生的。 (即抽象模型,抽象视图,抽象控制器)。 这允许我将大部分进程保留在父类中,而不是在状态管理器将处理的每个特定mvc集中添加重复代码。
现在的想法是让每个View调用它的Controller方法,然后调用它的Model方法,模型中的任何结果更改都将通过Controller传回View。
这就是我被困住的地方。 每个视图和模型对控制器的唯一了解就是在其父类中定义的内容。当然,这不包括子控制器为正确处理视图所需的非常具体的方法和模特。
对于我如何处理这个问题有什么想法吗?
-Thanks。
答案 0 :(得分:0)
你可能比MVC更接近MVP。无论如何,使用接口和泛型可以解决您的问题。
让您的抽象类采用通用接口:
public abstract class BaseView<TController>
{
protected TController Controller { get; private set; }
protected BaseView(TController controller)
{
Controller = controller;
}
}
这样的效果。
然后您的特定控制器将简单地实现相关接口。