定义
定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类
- 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法(Static Factory Method)
- 需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道其实现过程
- 此模式并不属于23种设计模式,但它却是工厂模式的基础
简单工厂模式的图解如下
- 当再新增一个水果香蕉时,只需要改造StaticFactory类代码即可
- 当其他人进行吃水果的运作时,无须再做改变
简单工厂模式代码演示:
/**
* 简单工厂模式 --- 静态工厂模式
*/
public class StaticFactory {
public static final int TYPE_APPLE = 1;//苹果
public static final int TYPE_ORANGE = 2;//桔子
public static final int TYPE_BANANA = 3;//香蕉
public static Fruit getFruit(int type){
if(TYPE_APPLE == type){
return new Apple();
} else if(TYPE_ORANGE == type){
return new Orange("dujaiyu",80);
} else if(TYPE_BANANA == type){
return new Banana();
}
return null;
}
/**
* 多方法工厂
* @return
*/
public static Fruit getFruitApple(){
return new Apple();
}
public static Fruit getFruitOrange(){
return new Orange("dujaiyu",80);
}
public static Fruit getFruitBanana(){
return new Banana();
}
}