2011-07-25 27 views
0

模型注射是否可能?换句话说,如果我要求一个IPhotoModel类型的模型,我应该根据视图的当前状态得到它的一个实现。如果我正在查看UserPage,我应该得到该模型的用户特定实现。如果我正在查看一个LocationPage,我应该得到一个位置特定的实现。实时注入特定模型实施[Robotlegs]

目前,我看到的是引入指定模型映射命令,基于当前视图状态的一个具体的唯一途径...

像...

注射器。 mapValue(IPhotoViewModel,injector.getInstance(UserPhotoViewModel))或 injector.mapValue(IPhotoViewModel,injector.getInstance(LocationPhotoViewModel))

这是最好的方式?我真的不想在上下文之外引入很多耦合逻辑,但是...

+0

您有更高的机会在http://knowledge.robotlegs.org上获得快速专业的答案。 –

回答

2

这就是我的做法,我相信这是推荐的方式。事实上,我认为许多高级的RobotLegs用户会将大部分映射到命令中,以方便起见,重复使用,并使程序更容易阅读 - 即使命令只在启动时运行一次。我用它来替换真正服务的模拟服务 - 映射依赖关系的命令是不同的,但其他一切都是一样的。

我不认为这是“那么多”耦合逻辑。命令只是根据当前的应用程序状态设置程序。使用Command来改变Injector状态与你自己定制的Model状态之间并没有太大的区别。

您甚至可能会发现,您可以在各个应用程序中重复使用注入映射命令,而您可能无法重新使用整个上下文。

HTH;

Amy