案例:一个下载多种文件的功能,我的想法是,
(1)一个service接口,声明一个方法(下载文件方法);
(2)每种文件的下载业务分别由一个service实现类实现,这些实现类实现了上述接口,重写下载方法;
(3)所有的下载业务由一个Controller控制。
难点:上述(3),不知道怎样注入多个service实现类。
可以考虑用工厂模式,直接注入工厂,然后在control 中获取工厂,最后从工厂中获取想要的事实现类。参考asp.net core 中LoggerFactory的实现。
如果使用spring的话有两种方式可以实现:其一,注入的时候标记别名;其二,使用Qualifier()标签
谢谢,已经解决了。先后分别用了Qualifier()和ApplicationContext getBean(String,Class) 的方法。
@zhoupengqin: 赞👍