GOF 在《设计模式》:定义一个用于创建对象的接口,让子类决定实例化哪一个类。
工厂模式:就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。简单工厂模式 是对象创建型模式。
//抽象产品角色
public interface Car {
public void drive();
}
//具体产品角色
public class Bmw implements Car {
@Override
public void drive() {
System.out.println("Driving Bmw");
}
}
//具体产品角色
public class Benz implements Car {
@Override
public void drive() {
System.out.println("Driving Benz");
}
}
//工厂类角色
public class SimpleFactory {
//工厂方法,注意返回类型为抽象产品角色
public static Car driverCar(String s) throws Exception {
//判断逻辑,返回具体的产品角色给Client
if (s.equalsIgnoreCase("Benz")) {
return new Benz();
}
else if (s.equalsIgnoreCase("Bmw")) {
return new Bmw();
}
else throw new Exception();
}
public static void main(String[] args) {
SimpleFactory simpleFactory = new SimpleFactory();
simpleFactory.driverCar("Benz ").getName();
creator.driverCar("Bmw ").getName();
}
}