1

我正在开发一个具有多个视图的应用程序。每个视图都由其他离散的可重用视图组件组成。

使用 MVP,如何创建子视图?父演示者很容易使用以下内容创建:

var ParentPresenter = new ParentPresenter(model, parentView);

但是在父演示者中,子视图或子视图是如何创建的?

我会在父演示者中实例化子视图演示者吗?要做到这一点,需要访问违反 MVP 的具体子视图实现,对吗?这不会让对我的演示者进行单元测试变得尴尬吗?

我已经阅读了许多文章、帖子和示例(主要是在 .NET 中),但我仍然没有“明白”。

此外,我在 JavaScript 中执行此操作(使用 Backbone),因此 JS 中的任何特定示例都会有所帮助。

谢谢

4

1 回答 1

0

在 .NET 中,我使用 IoC 容器来解决此问题:

SubPresenter 构造函数:

this.view = IoC.Resolve<ISubView>();

所以在应用中:

IoC.Register<ISubView, ConcreteSubView>();

在单元测试中:

IoC.Register<ISubView, MockSubView>();

我不了解 JS,但您可以查看此线程关于JS 的 IoC 框架

于 2014-01-10T12:43:24.867 回答