我正在开发一个包含多个视图的应用。每个视图由其他离散的可重用视图组件组成。
使用MVP,如何创建子视图?父演示者很容易使用以下内容创建:
var ParentPresenter = new ParentPresenter(model, parentView);
但是在父主持人中,子视图或子视图是如何创建的?
我会在父演示者中实例化子视图演示者吗?要做到这一点,需要访问与MVP相对的具体子视图实现吗?并不会让我的演示者单元测试变得尴尬吗?
我已经阅读了很多文章,帖子和示例(主要是在.NET中),但我仍然没有“得到它”。
另外,我在JavaScript(使用Backbone)中这样做,所以JS中的任何具体示例都会有所帮助。
由于
答案 0 :(得分:0)
在.NET中,我使用IoC容器来解决这个问题:
SubPresenter构造函数:
this.view = IoC.Resolve<ISubView>();
所以在申请中:
IoC.Register<ISubView, ConcreteSubView>();
在单元测试中:
IoC.Register<ISubView, MockSubView>();
我不了解JS,但你可以查看关于IoC frameworks for JS的这个帖子。