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