简单工厂模式在很多框架中也是有运用的例如spring中的IOC就是有工厂模式去实例化bean的。今天就通过简单例子现理解工厂模式。 在我所理解的工厂模式就是将在程序运行的时候我们所需要的Bean通过工厂去获取。
简单运算器的实现
- 工厂模式的基本实现 我们通过工厂去实例化我们需要的操作类,然后我们再通过具体的操作类去操作我们的具体算法。这样做的好处就是在我们需要增加操作的时候我们可以通过去继承Opreation类然后重写里面的方法实现我们需要的具体运算过程,在此过程我们降低了程序的耦合度。这里也借助了多态去处理。我们首先通过工厂去实例化具体的操作,然后通过多态再去实现具体的算法。
public class OperationFactory {
public static Opreation createOpreate(String opre){
Opreation opreate = null;
switch (opre){
case "+":
opreate = new OperationAdd();
break;
case "-":
opreate = new OperationSub();
break;
case "*":
opreate = new OperationMul();
break;
case "/":
opreate = new OperationDiv();
break;
}
return opreate;
}
}
2. IOC中的工厂模式
IOC中的设计方式就是有一个顶层BeanFactory接口里面的方法有getBean()去获取实例。但是我们在运用是基本都是使用ApplicationContext,因为它的功能相对于BeanFactory功能更加强大。
在此之前我也曾了解过ICO的运行机制问题,首先通过配置文件将其Bean信息加载于Bean注册表中,然后再将bean实例化出来放于Bean缓存池中,然后就可愉快的运用bean了。