简单工厂模式(SimpleFactory)是类的创建模式,又叫做静态工厂方法模式,是最基本的设计模式。由一个工厂对象决定创建出哪一种产品的实例,三个重要的角色,工厂类、目标类抽象接口、目标对象类;工厂类包含静态的工厂方法。
伪代码
package testdaemo.bean;
import org.springframework.util.Assert;
/**
* 简单工厂模式
* 静态工厂方法类
*/
public class DepotFactory {
private DepotFactory(){
}
public static Che createObject(String flag){
Che che = null;
switch (flag){
case "bike":
che = new Bike();
break;
case "car":
che = new Car();
break;
case "train":
che = new Train();
break;
case "cart":
che = new Cart();
break;
default:
Assert.isTrue(false,"无法生产出对应的车子。");
}
return che;
}
}
工厂类根据传入的参数决定创建哪一类产品的对象实例。核心是工厂类,这个类含有必要的逻辑判断,客户端直接使用工厂方法创建的实例对象,实现了对责任的分割。
由于简单工厂模式使用静态方法作为工厂方法,不能被子类继承,工厂角色无法基于继承的等级结构。当对象类层次逻辑较深时,不利于拓展。违反了开闭原则:无法在系统无需修改的情况下,拓展其功能。