- 一、角色
- 抽象工厂(Abstract Factory)角色:所有具体工厂类的接口
- 具体工厂(Concrete Factory)角色 :实现抽象工厂接口的具体工厂类
- 抽象产品(AbstractProduct)角色 :所有被创建实例的公共接口
- 具体产品(Concrete Product)角色 :创建的具体实例对象,具体产品由具体的工厂创建
- 二、适用场景
- 一个类不知道它所需要的对象的类:在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建;客户端需要知道创建具体产品的工厂类
- 一个类通过其子类来指定创建哪个对象:在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类来确定具体要创建的对象,利用面向对象的多态性和里氏
- 将创建对象的任务委托给多个工厂子类中的某一个,客户端在使用时可以无需关心是哪一个工厂子类创建产品子类,需要时再动态指定,可将具体工厂类的类名存储在配置文件或数据库中
- 三、实例
2.工厂方法模式
原文:https://www.cnblogs.com/zhongj/p/11221935.html