4

给定一个 View 使用一个 Presenter,并且在 Presenter 中你有一个模型。

你如何将模型注入到演示者中?如果我要在 View 级别注入它,那么您将回到原点,业务逻辑在视图中 - 也就是视图不应该知道它的模型。

有什么建议吗?

4

1 回答 1

3

您必须指的是被动视图模式。在监督控制器模式中,视图确实与模型通信以进行同步。

对于被动视图,您是正确的。您通常会在 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 容器甚至可以处理构造函数参数中的循环依赖关系,从而无需属性注入。

于 2009-06-05T04:21:14.463 回答