定义
简单工厂模式也叫静态方法模式(因为其工厂类使用static关键子进行访问)
设计到的类:
- 抽象产品类
- 具体产品类
- 工厂类
- 测试类
步骤:
- 创建抽象产品类,在该类中定义具体产品类的公共接口
- 创建具体产品类,定义具体的产品
- 创建工厂类,通过静态方法通过传入的不同参数来创建不同的实例
- 测试类,通过调用工厂类的静态方法,传入参数,来达到创建产品类的实例的目的
具体代码实现:
// 新建抽象产品类
public interface IProduct {
void show();
}
// 新建具体产品类A
public class ProductAImpl implements IProduct {
@Override
public void show() {
System.out.println("我是A产品");
}
}
// 新建具体产品类B
public class ProductBImpl implements IProduct {
@Override
public void show() {
System.out.println("我是B");
}
}
// 新建工厂类
public class Factory {
public static IProduct create(String name){
switch (name){
case "A":
return new ProductAImpl();
case "B":
return new ProductBImpl();
default:
return null;
}
}
}
// 新建测试类
public static void main(String[] args) {
Factory.create("A").show();
Factory.create("B").show();
}
结果:
我是A产品
我是B
复制代码
总结: 简单工厂模式是工厂模式中最简单的一种是模式
优点:
- 将创建实例的工作与使用实例的工作分开,达到了解耦的目的
缺点
- 工厂类集中了所有产品实例的创建,太重,一旦工厂类无法工作的化,所有的产品的工作都会出现问题
- 违背了“开放-关闭”原则,每增加一个产品就要去修改工厂类的代码
- 因为使用的是静态方法,而静态是不能被继承和修改的,无法形成“继承”的体系结构