0%

工厂方法

工厂方法


栗子

List.of()

Map.of()

MessageDigest.getInstance()

过程

接口

实现类

在接口中定义一个静态方法返回实现类的实例

特点

隐藏实现细节

  • 你需要的是List,我返回的可能是LinkedList也可能是ArrayList,这是你所不知道的

创建产品的代码与调用产品的代码相分离

调用方只和抽象工厂及其产品打交道

优势

创建产品的代码可以独立变化

可能存在的优化

  • 静态工厂方法不一定创建产品,可能使用缓存已有的