国外视觉差网站,做网站的结论和心得,织梦转wordpress,网站建设方案书 广东简单工厂模式
不同类型下创建对应的不同的对象#xff0c;得到不同的结果#xff0c;就叫简单生产模式
比如
定义一个接口#xff0c;叫A#xff0c;里面有方法a#xff0c;返回int类型
类B1实现A接口#xff0c;也实现a方法#xff0c;里面做的是加法运算 类B2实现…简单工厂模式
不同类型下创建对应的不同的对象得到不同的结果就叫简单生产模式
比如
定义一个接口叫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等于几,比如要算减法type2 那么只要使用SimpleFactory.cal(2)就能得到对于计算的答案 由于cal方法一般都做成静态方法所以简单工厂模式有时也叫静态工厂模式。
优缺点
简单工厂类的优点就是简单实用。 缺点就是代码耦合大如果要新增一个类就需要在工厂类中新增这样就是违背了开放-封闭原则了。
源码应用
其实很多地方都用到了简单工厂模式比如JDK源码中有个类java.util.Calendar。 我们直接看源码
静态方法getInstance() 这个说明getInstance()应该是一个默认的方法其实真正的方法是有两个参数的一个是时区一个是地区 下面红框这个就是根据不同的入参返回了不同的Calendar的子类就是简单工厂模式。