【设计模式】简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )(一)

简介: 【设计模式】简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )(一)

文章目录

一、简单工厂模式简介

二、简单工厂模式适用场景

三、简单工厂模式优缺点

四、简单工厂模式代码示例

1、抽象类

2、子类对象 1

3、子类对象 2

4、工厂类

5、测试类





一、简单工厂模式简介


简单工厂模式 : 由 一个 工厂对象 决定 创建出 哪一种 产品类 的 实例 ;


简单工厂模式类型 : 创建型 ;






二、简单工厂模式适用场景


简单工厂模式适用场景 :


创建对象少 : 工厂类 负责 创建的对象 比较少 ;


不关心创建过程 : 客户端 只知道 传入 工厂类 的参数 , 对于 如何创建对象 不关心 ;






三、简单工厂模式优缺点


简单工厂模式优点 : 只需要传入 正确的参数 , 就可以 获取需要的对象 , 无需知道创建细节 ;

工厂类中有必要的 判断逻辑 , 可以决定 根据当前的参数 创建对应的产品实例 , 客户端可以免除直接创建产品对象的责任 ;

通过该模式 , 实现了对 创建实例 和 使用实例 的 责任分割 ;

提供专门的 工厂类 用于创建对象 , 客户端 无需知道所创建的产品类的类名 , 只需要知道对应产品类的参数即可创建对象实例 ;



简单工厂模式缺点 : 工厂类 职责 过重 , 如果要增加新的产品 , 需要 修改工厂类的判断逻辑 , 违背 " 开闭原则 " ;

7 77 大设计原则 , 不能全部遵守 , 也不能不遵守 , 注意平衡 功能 和 系统复杂度 , 找到最合适的一个点 ;






四、简单工厂模式代码示例



1、抽象类


package simplefactory;
/**
 * 视频抽象
 */
public abstract class Vedio {
    /**
     * 生产视频
     */
    public abstract void produce();
}



2、子类对象 1


package simplefactory;
public class JavaVedio extends Vedio {
    @Override
    public void produce() {
        System.out.println("录制 Java 视频");
    }
}



3、子类对象 2


package simplefactory;
public class PythonVedio extends Vedio {
    @Override
    public void produce() {
        System.out.println("录制 Python 视频");
    }
}


目录
相关文章
|
3天前
|
设计模式 Java API
【设计模式】JAVA Design Patterns——Combinator(功能模式)
【设计模式】JAVA Design Patterns——Combinator(功能模式)
|
4天前
|
设计模式 监控 Java
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
|
4天前
|
设计模式 Java 程序员
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
|
4天前
|
设计模式 算法 Java
【设计模式】JAVA Design Patterns——Builder(构造器模式)
【设计模式】JAVA Design Patterns——Builder(构造器模式)
|
4天前
|
设计模式 Java 容器
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
|
1天前
|
设计模式 Java 数据库
【设计模式】JAVA Design Patterns——Converter(转换器模式)
转换器模式旨在实现不同类型间的双向转换,减少样板代码。它通过通用的Converter类和特定的转换器(如UserConverter)简化实例映射。Converter类包含两个Function对象,用于不同类型的转换,同时提供列表转换方法。当需要在逻辑上对应的类型间转换,或处理DTO、DO时,此模式尤为适用。
【设计模式】JAVA Design Patterns——Converter(转换器模式)
|
3天前
|
设计模式 存储 Java
【设计模式】JAVA Design Patterns——Command(事务模式)
【设计模式】JAVA Design Patterns——Command(事务模式)
|
4天前
|
设计模式 Java
【设计模式】JAVA Design Patterns——Callback(回调模式)
【设计模式】JAVA Design Patterns——Callback(回调模式)
|
4天前
|
设计模式 Java
【设计模式】JAVA Design Patterns——Business Delegate(业务委托模式)
【设计模式】JAVA Design Patterns——Business Delegate(业务委托模式)
|
4天前
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Balking(止步模式)
【设计模式】JAVA Design Patterns——Balking(止步模式)