如何在MVP中创建复合视图?

时间:2012-06-15 17:46:27

标签: javascript mvp

我正在开发一个包含多个视图的应用。每个视图由其他离散的可重用视图组件组成。

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

var ParentPresenter = new ParentPresenter(model, parentView);

但是在父主持人中,子视图或子视图是如何创建的?

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

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

另外,我在JavaScript(使用Backbone)中这样做,所以JS中的任何具体示例都会有所帮助。

由于

1 个答案:

答案 0 :(得分:0)

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

SubPresenter构造函数:

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

所以在申请中:

IoC.Register<ISubView, ConcreteSubView>();

在单元测试中:

IoC.Register<ISubView, MockSubView>();

我不了解JS,但你可以查看关于IoC frameworks for JS的这个帖子。