给定一个 View 使用一个 Presenter,并且在 Presenter 中你有一个模型。
你如何将模型注入到演示者中?如果我要在 View 级别注入它,那么您将回到原点,业务逻辑在视图中 - 也就是视图不应该知道它的模型。
有什么建议吗?
给定一个 View 使用一个 Presenter,并且在 Presenter 中你有一个模型。
你如何将模型注入到演示者中?如果我要在 View 级别注入它,那么您将回到原点,业务逻辑在视图中 - 也就是视图不应该知道它的模型。
有什么建议吗?
您必须指的是被动视图模式。在监督控制器模式中,视图确实与模型通信以进行同步。
对于被动视图,您是正确的。您通常会在 Main 函数或可以从 Main 调用的配置类中执行此操作。由于没有指定语言,我用 C# 编写了示例。
static void Main(string[] args)
{
Model model = new Model();
View view = new View();
Presenter presenter = new Presenter(view, model);
}
public Presenter(IView view, IModel model)
{
this.View = view;
this.View.Presenter = this;
this.Model = model;
}
当然,这是一个严重的过度简化。在现实世界的应用程序中,演示者将依赖于抽象模型的域对象,您可能会使用 IoC 容器来处理配置。一些 IoC 容器甚至可以处理构造函数参数中的循环依赖关系,从而无需属性注入。