我正在写一个桌面地理信息系统应用程序,它支持MapXtreme,MS虚拟地球,我们的自定义地图Engine.Users应用程序可以在运行时通过从下拉列表中选择来更改地图引擎。
public class MapFactory implements IMapFactory
{
public IMapEngine createInstance(MapType type)
{
if(type==MapType.MapXtreme)
return new MapXtremeEngine();
else if(type==MapType.VirtualEarth)
return new VirtualEarth();
//....other code
}
}我可以使用依赖注入框架在运行时通过类型参数创建合适的MapEngine实现吗?
发布于 2009-08-28 04:01:13
您的示例正是有条件地实例化对象的正确模式。在需要创建实例的任何地方,都可以在构造函数中接受IMapFactory。
DI框架应该做的最多的事情就是分发IMapFactory实例。
https://stackoverflow.com/questions/1331449
复制相似问题