工厂方法模式
1、定义
定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。
2、使用场景
在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。
3、UML类图
角色介绍:
Factory:抽象工厂,其为工厂方法模式的核心
ConcreteFactory:具体工厂,其实现了具体的业务逻辑
Product:抽象产品,是工厂方法模式创建的产品的父类
ConcreteProduct:具体产品,为实现抽象产品的某个具体产品对象
也可以尝试为每一个产品都定义一个具体的工厂,各司其职,像这种拥有多个工厂的方式称为多工厂方法模式。
当具体工厂只有一个的时候,可以去掉抽象工厂的角色,并把方法改为静态模式,称为简单工厂模式或者静态工厂模式。
注:本书参看的爱哥辉哥的《android源码设计模式解析与实战》。