简单工厂模式
不同类型下创建对应的不同的对象,得到不同的结果,就叫简单生产模式
比如
定义一个接口,叫A,里面有方法a,返回int类型
类B1实现A接口,也实现a方法,里面做的是加法运算
类B2实现A接口,也实现a方法,里面做的是减法运算
类B3实现A接口,也实现a方法,里面做的是乘法运算
类B4实现A接口,也实现a方法,里面做的是除法运算
定义一个类叫SimpleFactory,里面属性是A,有个方法叫cal
伪代码如下:
Class SimpleFactory{
private A a;
public static int cal(int type){
if(type == 1){
a = new B1();
}else if(){
a = new B2();
}else if(){
a = new B3();
}else if(){
a = new B4();
}
return a.a();
}
}
这样调用后,只要确定type等于几,比如要算减法,type=2,
那么只要使用SimpleFactory.cal(2),就能得到对于计算的答案
由于cal方法一般都做成静态方法,所以简单工厂模式,有时也叫静态工厂模式。
优缺点
简单工厂类的优点就是简单实用。
缺点就是代码耦合大,如果要新增一个类,就需要在工厂类中新增,这样就是违背了开放-封闭原则了。
源码应用
其实很多地方都用到了简单工厂模式,比如JDK源码中有个类java.util.Calendar。
我们直接看源码:
静态方法getInstance()

这个说明getInstance()应该是一个默认的方法,其实真正的方法,是有两个参数的,一个是时区,一个是地区

下面红框这个,就是根据不同的入参,返回了不同的Calendar的子类,就是简单工厂模式。


本文深入讲解了简单工厂模式,一种常见的软件设计模式。通过实例演示了如何根据不同类型的输入创建不同的对象,实现加、减、乘、除等运算。讨论了模式的优缺点,并以Java.util.Calendar为例,展示了简单工厂模式在实际开发中的应用。
1580

被折叠的 条评论
为什么被折叠?



