巧妙运用spring依赖注入实现简单工厂模式
举一个业务场景:
假设有一个统一买票旅游的入口,买完票会有一个字段表明种类。
这些种类表明你去哪,怎么去。
是坐飞机去奥地利,或是走路到隔壁龙虾店,都不得而知,而且代码逻辑几乎没有关联。这个时候我们难道要这样写代码吗?
if(type == 1){
此处洋洋洒洒N多业务方法调用
}else(type == 2){
此处洋洋洒洒N多业务方法调用
}
我们可以用简单工厂来做这事,而且spring的依赖注入非常智能!
首先我们定义一个handler接口
public interface Handler { public void print(); }然后我们实现2个,并且加上spring的注解,注意手动给它们取名字哦。
@Component("aHandler") public class AHandler implements Handler { @Override public void print() { System.out.println("我是AHandler"); } }
@Component("bHandler") public class BHandler implements Handler { @Override public void print() { System.out.println("我是BHanler"); } }我们再写一个工厂去生产它们。
@Component public class HandlerFactory { @Autowired private Map<String , Handler> handlerMap; public Handler getHandlerByName(String name){ return handlerMap.get(name); } }好了,一切就绪,现在单元测试跑起来。
@RunWith(SpringRunner.class) @SpringBootTest(classes = DemoApplication.class) public class DemoApplicationTests { @Autowired private HandlerFactory handlerFactory; @Test public void factoryTest() { handlerFactory.getHandlerByName("aHandler").print(); handlerFactory.getHandlerByName("bHandler").print(); } }于是控制台就打印相应bean下的方法啦~~~
- spring 框架中的依赖注入(IOC--设值注入)---使用xml简单配置文件---的具体实例的简单实现
- Spring学习笔记(5)----依赖注入的简单实现
- 运用Unity实现依赖注入[结合简单三层实例]
- Spring学习笔记----依赖注入的简单实现
- 模拟实现Struts拦截器-蕴含着代理模式,AOP,工厂模式,依赖注入,Java 反射,动态构造等机制
- Spring依赖注入的XML配置文件的实现思想(2)——简单的实现
- Spring学习笔记(5)----依赖注入的简单实现
- spring 框架中的依赖注入(IOC--设值注入)--使用注解--的具体实例的简单实现
- 使用XPath解析xml实现简单的Spring IOC完成bean的依赖注入
- 运用Unity实现依赖注入[结合简单三层实例]
- 运用Unity实现依赖注入[结合简单三层实例]
- Spring依赖注入实现简单工厂模式
- “围城”式困境中的依赖注入模式及Spring(2)
- “围城”式困境中的依赖注入模式及Spring(1)
- 大话设计模式之C++实现---简单工厂模式
- vb.net 中通过反射实现简单工厂模式
- “围城”式困境中的依赖注入模式及Spring(1)
- 策略模式与简单工厂的C++实现
- IoC 依赖注入、以及在Spring中的实现
- “围城”式困境中的依赖注入模式及Spring(2)