设计模式-简单工厂模式 Java

Java设计模式之简单工厂模式 所以,干脆在模块内部新建一个类,在这个类里面来创建接口,然后把创建的接口返回给具体调用者,这样,外部应用就只需根据这个类来获取相应的接口对象,然后就可以操作接口定义的方法了。虽然说简单工厂的方法大多是用来创建接口的,但是仔细分析你会发现,真正能实现功能的是具体的实现类,这些实现类是已经做好的,并不是真的要靠简单工厂来创建出来的,简单工程的方法无外乎就是:实现了选择一个合适的实现类来使用。私有化简单工厂的构造方法,使用静态方法来创建接口,也就不能通过写简单工厂类的子类来改变创建接口的方法行为了。 阅读详情

模式概述

简单工厂模式(Simple Factory Pattern)通过一个工厂类根据传入的参数来动态的创建不同类型对象,将对象的实例化与客户端代码解耦。属于创建型模式,适用于产品类型有限且不频繁变化的场景。

简单代码示例

// 1. 抽象产品接口
interface Product {
    void use();
}

// 2. 具体产品实现
class ConcreteProductA implements Product {
    @Override
    public void use() {
        System.out.println("Using Product A");
    }
}

class ConcreteProductB implements Product {
    @Override
    public void use() {
        System.out.println("Using Product B");
    }
}

// 3. 简单工厂类
class SimpleFactory {
    public Product createProduct(String type) {
        if ("A".equalsIgnoreCase(type)) {
            return new ConcreteProductA();
        } else if ("B".equalsIgnoreCase(type)) {
            return new ConcreteProductB();
        }
        throw new IllegalArgumentException("Invalid product type: " + type);
    }
}

// 4. 使用示例
public class Test{
    public static void main(String[] args) {
        SimpleFactory factory = new SimpleFactory();
        
        // 创建产品A
        Product productA = factory.createProduct("A");
        productA.use();  // 输出: Using Product A
        
        // 创建产品B
        Product productB = factory.createProduct("B");
        productB.use();  // 输出: Using Product B
    }
}

技术细节

1.模式组成

组件职责说明
Product抽象产品接口,定义产品的公共方法(如 use())
ConcreteProductA/B具体产品类,实现产品接口的业务逻辑
SimpleFactory工厂类,根据输入参数创建对应的产品实例

2.优点与缺点

优点:

  • 解耦工厂和具体产品类
  • 集中化对象创建逻辑,便于维护
  • 符合单一职责原则

缺点:

  • 违反开闭原则(新增产品需修改工厂类)
  • 静态类没有办法被继承
  • 工厂类职责过重,产品过多时逻辑复杂

模式应用

JDK中很多地方使用了简单工厂模式,例如工具类java.text.DateFormat、Java加密技术等

扩展建议

  1. 配置文件扩展:通过读取配置文件实现产品类型的动态配置。
  2. 枚举优化:使用枚举类型替代字符串参数或者枚举中配置参数。
Redhawk解析PAD / IOPAD的实现方法 Redhawk解析IOPAD的实现方法1. IOPAD DEF的概念说明2. 生成 IOPAD GDS文件3. 生成 IOPAD DEF文件4. Redhawk解析过程中读取IOPAD DEF 本文主要简述【Redhawk解析IOPAD】的实现原理方法,具体脚本没有放在这里。 1. IOPAD DEF的概念说明 2. 生成 IOPAD GDS文件 注: getinfo2IODEF.tcl 是基于innovus获取IOPAD的摆放信息以及库信息。 run_cerate_iopadgds.csh 是基于c 阅读详情

相关推荐

在innovus中通过ecoAddRepeater插入buffer/inverter

在innovus中,我们可以通过ecoAddRepeater命令来在net上添加单个buffer或者成对的inverters。ecoAddRepeater命令的行为由命令setEcoMode控制。 选项说明 -cell <list of cells> 指定插入的buffer或者inverter的类型。 -net <netName> | -term <inst1/term1 inst2/term2 ...> -net指定需要插入buffer/inverters的

kevindas的博客 1万+

JAVA设计模式之 简单工厂模式【Simple Factory Pattern】

一、概述 er、适用场景

小吕丶Code阶区 5319

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9736

Java 设计模式-简单工厂模式

Java 设计模式-简单工厂模式 文章目录Java 设计模式-简单工厂模式介绍简单工厂模式的结构与实现**简单工厂模式的优缺点和适用环境** 介绍 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具

霍英俊 2513

Jetson Orin NX 单目标跟踪算法实战

本文对比了NanoTrack和MixFormerV2两种目标跟踪算法在Jetson Orin NX边缘设备上的实际表现。通过天空小目标跟踪场景测试发现,NanoTrack虽然表征能力较弱,但具有目标身份一致性强、失败模式可控、计算负担小等优势,更适合作为边缘端默认算法。MixFormerV2则适用于高速运动等特定场景。实验数据显示NanoTrack在Orin NX上可达200FPS,远高于MixFormerV2的38-120FPS。建议先采用NanoTrack构建稳定系统,后续再评估复杂算法的适用性。

karmueo46的博客 624

CMOS中的 latch-up 闩锁效应、添加tap解决latch-up、使用combained area绘制TAP TAP的作用 IC后端版图【VLSI】

本文详细阐述了闩锁效应latch-up问题、如何通过添加Tap来解决。详细讲述了如何通过combained area来绘制TAP

Jie_MSD的博客 1万+

Java设计模式--简单工厂模式

Java设计模式–简单工厂模式 文章目录Java设计模式--简单工厂模式前言一、工厂模式是什么?定义二、工厂模式的优缺点优点:缺点:三、模式的结构与实现四、应用场景 前言 现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简到繁一步一步迭代而来的,但对于调用者来说,却越来越简单 一、工厂模式是什么? 定义 工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工

weixin_43127250的博客 127

免Root抓包神器Packet Capture:安卓App数据捕获全攻略

本文详细介绍了免Root安卓抓包神器Packet Capture的安装与使用全攻略。通过利用安卓系统的VPN Service API,该工具无需Root权限即可捕获并解密App的HTTP/HTTPS网络流量。文章从核心原理、证书安装、实战抓包步骤到结果分析与常见问题排查,提供了完整指南,是移动端开发、安全测试和数据分析的实用利器。

weixin_29232507的博客 1072

Java设计模式——简单工厂模式

java设计模式——简单工厂模式

weixin_39781687的博客 1696

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

StarRocks 面试题及参考答案详解(万字详解)

Broker Load的过程通常涉及到数据的解析、转换和加载,它支持多种数据格式,并且可以处理复杂的数据导入任务。一方面,压缩可以减少磁盘I/O操作,因为压缩后的数据占用的空间更小,需要读取的数据块数量也就更少。在StarRocks中,表数据可以被划分成多个分区,每个分区包含表的一部分数据。在传统的行存储模型中,数据是按行组织的,这意味着在执行分析查询时,系统需要读取并处理整行数据,即使很多时候只需要查询其中的少数几列。物化视图的更新可以是完全重算,也可以是增量更新,取决于物化视图的定义和数据变更的模式。

大模型大数据攻城狮的专栏 2076

设计模式(Design Pattern) - 创建型模式(Creational Pattern) - 简单工厂模式(Simple Factory Pattern) - Java实现

简单工厂模式(Simpale Factory Pattern):定义了一个工厂类,可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。 因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。

Z 833

ParaView :在paraview创建渲染视图

ParaView :在paraview创建渲染视图

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1301

【JAVA设计模式】简单工厂模式(Simple Factory Pattern)

简单工厂设计模式,java实现

C_son的专栏 2124

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【设计模式】Java设计模式——简单工厂模式(Simple Factory Pattern)

1. 介绍 1.1 定义 简单工厂模式(Simple Factory Pattern)又称静态工厂方法,它属于创建型模式 专门定义一个工厂类负责创建其他类的实例,可以根据参数的不同返回不同类的实例,被创建的实例通常都具有相同的父类 1.2 作用 将实例的创建与实例的业务处理分开,降低系统的耦合度,即使用者可直接消费产品而不需要知道生产的细节 2. 模式结构 2.1 UML类图 2.2 模式组成 工厂(Factory):被外部调用,根据参数的不同创建不同具体产品类的实例 抽象产品(Product)

Dust_heart的博客 507

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java设计模式--创建型设计模式-简单工厂模式

Java设计模式--创建型设计模式-简单工厂模式

Fatter$hday的博客 1209

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Java设计模式】系列一:简单工厂模式

前言 设计模式是Java面试过程中必不可少的一个知识点,面试官大概会问到【用过哪些设计模式,手写一个具体代码或者具体应用场景等等】,首先了解一下设计模式的具体分类; 设计模式大体可以分为三大类: 创建型模式: 共五种,工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; 结构型模式: 共七种,适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式; 行为模式: 共十一种...

能先森的博客 301

Java设计模式—— 简单工厂模式( Simple Factory Pattern )

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或实现共同的接口。 简单工厂模式UML类图如下: 从类图可以看出,简单工厂模式包含3个要素: ...

zsx18273117003的博客 368

Java 设计模式-创建型模式-简单工厂模式(Simple Factory Pattern)

文章目录一、模式定义二、模式动机三、模式结构四、代码实现1、普通简单工厂2、多方法简单工厂3、静态方法简单工厂五、缺点 简单工厂模式(Simple Factory Pattern)不属于 GoF 的 23 种经典设计模式的范围,简单工厂一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂。 一、模式定义 简单工厂模式(Simple Factory Pattern)又称为静态工厂方法(Static Factory Method)模式,它属于创建型模式。提供创建对象的最佳方式。 工厂模式,顾名思义,用来

WU4566285的博客 505

java 密钥工厂 desede_【java设计模式】简单工厂模式

【java设计模式】简单工厂模式【java设计模式】简单工厂模式今天,我们来学习简单简单工厂模式简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。(来自维基百科...

weixin_39613692的博客 181

java设计模式之单例模式和简单工厂模式

深度探讨java设计模式一、单例模式二、简单工厂模式 一、单例模式 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 代码: // An highlighted block /** * 第一种:单例模式 */ public class demo01 { private static demo01 d = null; ...

weixin_39398544的博客 491

Java设计模式-1.简单工厂模式概述与使用

Java设计模式-简单工厂模式概述与使用   1、设计模式概述 什么是设计模式 设计模式分类 创建型模式 行为型模式 结构型模式 常见的设计模式 简单工厂模式和工厂方法模式(接口) 模版设计模式(抽象类) 装饰设计模式(IO流) 单例设计模式(多线程) 适配器模式(GUI) 2、简单工厂模式:只有一个工厂用来生产对象 简单工厂模式概述:又叫静态工厂方...

风暴计划 274

[从零开始学设计模式-java]简单工厂模式(Simple Factory Method)

简单工厂模式意图 简单工厂模式的意图是定义一个用于创建对象的接口,并控制返回哪个类的实例。 简单工厂模式的角色分布以及各角色的职责: 工厂类(Factory):这是简单工厂模式的核心,用于负责控制创建对象的内部逻辑。(这个其实就是一个普通类,里面提供一个创建其他类的方法) 抽象产品角色(Product):简单工厂模式所创建的所有对象的父类,注意,这里的父类可以是接口也可以是抽象类,

a530552571的专栏 467

Java 设计模式之简单工厂模式

简单工厂模式并不属于经典的23种设计模式之一。它通常被视为工厂方法模式的一种简化形式,用于创建对象,但不具备工厂方法模式的灵活性。

xiangxiongfly 326

java设计模式——简单工厂模式(Simple Factory Pattern)

定义:简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工            厂模 式中,可以根据参数的不同返回不同类的实例。 结构: Factory:工厂角色,它是简单工厂模式的核心,负责实现创建所有产品实例的内部逻辑;工厂类可以被外界直接调用, 创建所需的产品对象;在

yj_android_develop的博客 778
上一篇: Druid 监控配置与访问指南
下一篇: Bug 记录:定时任务因数据库时间滞后导致数据清理失效问题
刘火锅
博客等级 码龄7年 121粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值