如何使用IOC处理视图列表

时间:2011-12-01 05:56:16

标签: model-view-controller inversion-of-control

如果我有一个包含模型列表并希望为每个模型创建相应视图的集合,那么使用IOC(控制反转)执行此操作的最佳方法是什么?

我看到两种方式:

  1. 使用工厂模式。我只会传递我的模型集合并构建视图,因为我需要它们通过IOC传入的工厂。

  2. 创建另一个类,其中包含我需要的所有视图的列表,由IOC预先构建。然后我只从列表中选择我想要的视图。

  3. 您认为哪种方式更好?

1 个答案:

答案 0 :(得分:2)

如果您可以提前构建视图,最佳解决方案可能是简单地将所有视图的列表(IEnumerable)注入每个使用者,并可能使用Specification Pattern从中选择适当的视图那份清单。

另一方面,如果您需要运行时值,然后才能实例化每个视图a Factory is the correct solution