1. 目的
工厂模式家族包括:简单工厂方法模式(Simple Factory Method Pattern),简单工厂模式(Simple Factory Pattern),工厂方法模式(Factory Method Pattern),抽象工厂模式(Abstract Factory Pattern)。
工厂模式的核心,其实主要为实现以下几个目的:
- 控制类的实例化过程
- 隔离生产类与调用方,解耦合
- 提升设计的灵活性
2. 使用场景辨析
在下面这个图表中,我们可以看到4中模式的异同,通过超链接可以导航至相关的设计模式,查看详细解析和示例代码。😉
目的/场景 | 典型代码 | |
---|---|---|
简单工厂方法模式(Simple Factory Method Pattern) | 将对象实例化的创建过程,封装在目标类的CREATE方法中。 | CL_TARGET=>CREATE( ) |
简单工厂模式(Simple Factory Method Pattern) | 将对象实例化的创建过程,封装在一个独立的类中。工厂类中包含分支结构,依据场景创建相应的实例。 | CL_FACTORY=>CREATE( iv_type ) |
工厂方法模式(Factory Method Pattern) | 定义一个用于创建对象的接口,让工厂类决定实例化哪一个生产类。工厂方法使一个生产类的实例化,延迟到对应的工厂子类中。每一个生产类,都有一个与之对应的工厂类。 | CL_FACTORY_A=>CREATE( ); CL_FACTORY_B=>CREATE( ) |
抽象工厂模式(Abstract Factory Pattern) | 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。工厂类中提供了多个创建方法,分别负责相关类的实例化。一个工厂类,对应的多个相关的生产类。 | CL_FACTORY_A=>CREATE_USER( ); CL_FACTORY_A=>CREATE_PRODUCT( ). CL_FACTORY_B=>CREATE_USER( ); CL_FACTORY_B=>CREATE_PRODUCT( ) |
以上是对工厂模式的总结,欢迎分享、留言。😉
本博客专注于技术分享,干货满满,持续更新。
欢迎关注❤️、点赞👍、转发📣!