简单工厂模式:定义一个创建对象的工厂接口,将创建的具体细节交给子类实现。按照业务场景划分:工厂模式可以分为:简单工厂模式,工厂方法模式,抽象工厂模式
简单工厂模式之所以称为简单是因为:创建的产品不多,只需要一个工厂就可以完成。简单工厂也被称之为静态工厂模式,是因为该工厂内用于创建实例的方法通常为静态
优点:
- 工厂类决定什么时候创建那种类型的产品,调用方则不需要考虑太多
缺点:
- 简单工厂模式工厂类单一,负责全部的创建逻辑
- 产品新增时,需要扩展工厂
应用场景:
- 产品种类相对较少
实现方法:
- 简单工厂:是简单工厂模式的核心,负责创建需要的实例,
- 抽象产品:是工厂所创建的所有产品的抽象父类
- 具体产品:工厂所创建的具体目标
示例:
public class SimpleFactoryDemo {
public static void main(String[] args) {
SimpleFactory.create(1).show();// 产品1
}
// 创建对象的工厂
static class SimpleFactory{
public static Product create(int i){
switch (i){
case 1:
return new p1();
case 2:
return new p2();
}
return null;
}
}
// 产品抽象基类
interface Product{
void show();
}
// 产品1
static class p1 implements Product {
@Override
public void show() {
System.out.println("产品1");
}
}
// 产品2
static class p2 implements Product{
@Override
public void show() {
System.out.println("产品2");
}
}
}