简单工厂模式(Simple factory pattern)
概念
简单工厂模式也称为静态工厂模式,就是工厂类一般是静态方法,通过接收的参数不同来返回不同的对象实例
作用
用来生产同一等级结构中的任意产品
弊端
对于增加新的产品,需要修改已有代码
案例(汽车生产线)
创建汽车接口
public interface Car {
public abstract void run();
}
创建奥迪实例
public class Audi implements Car{
public void run() {
System.out.println("奥迪车在生产中!");
}
}
创建宝马实例
public class Bwm implements Car{
public void run() {
System.out.println("宝马车在生产中!");
}
}
原始方式(用户需要清楚:Car,Audi,Bwm...)
public class CarUser {
public static void main(String[] args) {
/*
* 原始方式:需要什么就new什么
*/
Car c1 = new Audi();
Car c2 = new Bwm();
c1.run();
c2.run();
}
}
UML图
创建汽车工厂
public class CarFactory {
//创建奥迪类
public static Audi createAudi(){
return new Audi();
}
//创建宝马类
public static Bwm createBwm(){
return new Bwm();
}
//.....
}
简单工厂方式(用户只需要清楚:Car,CarFactory)
public class CarUser {
public static void main(String[] args) {
/*
* 原始方式:需要什么就new什么
*/
Car c1 = new Audi();
Car c2 = new Bwm();
c1.run();
c2.run();
/*
* 简单工厂方式:通过工厂去生成汽车
*/
Car car3 = CarFactory.createAudi();
Car car4 = CarFactory.createBwm();
car3.run();
car4.run();
}
}
UML图