目录
前面说到有三种工厂模式:
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
1 简单工厂模式
简单工模式时类的创建模式,又叫做静态工厂方法(static Factory Method)。简单工厂模式是一个工厂对象决定创建出哪一种产品类的实例。它存在的目的很简单:定义一个创建对象的接口。
1.1 组成
- 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。
- 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
- 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
1.2 简单例子
以汽车和汽车工厂为例
1.2.1 抽象产品角色
package simpleFactory;
/**
* @author Mr.Qing
* @date 2021/11/8
*/
public interface car {
void name();
}
1.2.2 具体产品角色
package simpleFactory;
/**
* @author Mr.Qing
* @date 2021/11/8
*/
public class tesla implements car{
@Override
public void name() {
System.out.println("特斯拉");
}
}
package simpleFactory;
/**
* @author Mr.Qing
* @date 2021/11/8
*/
public class wuLing implements car{
@Override
public void name() {
System.out.println("五菱");
}
}
1.2.3 工厂类角色
package simpleFactory;
/**
* @author Mr.Qing
* @date 2021/11/8
*/
public class carFactory {
public static car getCar(String car){
if (car.equals("wuLing")){
return new wuLing();
}
else if (car.equals("tesla")){
return new tesla();
}
else {
return null;
}
}
}
1.2.4 顾客测试类
package simpleFactory;
/**
* @author Mr.Qing
* @date 2021/11/8
*/
public class consumer {
public static void main(String[] args) {
car wuLing = carFactory.getCar("wuLing");
car tesla = carFactory.getCar("tesla");
wuLing.name();
tesla.name();
}
}
结果