简单工厂模式

1、简单工厂模式实现计算器功能 简单工厂模式实现计算机功能 文章目录简单工厂模式实现计算机功能简介创建型模式简单工厂模式概述流程结构理解类图优点缺点适用环境练习题目源代码 简介 创建型模式 了解简单工厂模式之前,首先要先了解下创建型模式,接下来的Java设计模式的学习,将会逐步学习创建型模式下的6种模式。 创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。 在GoF设计模式中包含5种创建型模式,通常将一种非GoF设计模式——简单工厂模式作为学习其他工厂模式 阅读详情

简单工厂模式

什么是工厂模式

 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式

 

工厂模式好处

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。

将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

 

工厂模式分类

 

 

简单工厂模式

简单工厂模式相当于是一个工厂中有各种产品,创建在一个类中,客户无需知道具体产品的名称,只需要知道产品类所对应的参数即可。但是工厂的职责过重,而且当类型过多时不利于系统的扩展维护。

 

大家注意 工厂和容器的概念, 容器存放,工厂创建。

 请看目录结构:

 

 Car接口定义:

package FactoryModel;

//汽车厂
public interface Car {
   void run();
}

实现类,各种车型:

package FactoryModel;

public class BydCar implements Car {

    @Override
    public void run() {
        System.out.println("比亚迪run");
        
    }
    
}
package FactoryModel;

public class JiLiCar implements Car {

     @Override
    public void run() {
        
       System.out.println("吉利run");    
    }
    
}

定义工厂:

package FactoryModel;

//汽车厂
public class CarFactory {
   
 public static Car createCar(String name){
     
       if (name.equals("比亚迪")) {
        return new BydCar();
    }
      if (name.equals("吉利")) {
        return new JiLiCar();
    }
      //其他类型的
        return null;
    }    
}

定义客户端:

package FactoryModel;

public class Client {

      public static void main(String[] args) {
         Car byd = CarFactory.createCar("比亚迪");  //类比线程池的创建哦
        byd.run();
    }
    
}

运行结果:

简单工厂模式:里面的场景多 传递参数 返回具体产品 但是类型很多时候就影响扩展性了 很麻烦了

 

单工厂的优点/缺点

优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。

缺点:很明显工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则

 

 

简单工厂模式  又叫 静态工厂方法模式  它定义一个具体的工厂类负责创建一些类的实例

  优点  客户端不需要负责对象的创建  从而明确了个各类的职责

  缺点  这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护

 

VASP+机器学习快速收敛AIMD 本文介绍了如何利用VASP结合机器学习技术快速收敛AIMD(从头算分子动力学)模拟。首先,通过训练机器学习力场,生成关键文件如ML_ABN(包含结构数据集)、ML_FFN(存储回归结果)和ML_LOGFILE(记录训练日志)。接着,配置INCAR文件以设置计算参数,包括并行化、分子动力学和机器学习相关参数。KPOINTS文件用于定义K点网格。计算完成后,备份CONTCAR文件作为后续模拟的初始结构。最后,利用训练好的力场文件进行纯机器学习力场分子动力学模拟,并提交任务执行。 阅读详情

相关推荐

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1229

简单工厂模式(静态工厂方法模式)

目录 定义 为什么要使用工厂模式 模式结构 模式分析 实例 简单工厂模式的优点 简单工厂模式的缺点 适用环境 总结 定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是...

心猿意碼 9488

Redis架构演进:从主从、哨兵到集群,如何支撑亿级流量的秒杀场景?

本文深入探讨了分布式缓存Redis的三种核心高可用模式:主从复制、哨兵模式与集群模式。以高并发的电商秒杀业务为切入点,我们分析了每种模式的优缺点和适用场景,并最终选择Redis集群模式作为最佳解决方案。文章提供了基于Spring Boot和Spring Data Redis的完整实现代码,详细展示了如何配置和使用Redis集群来应对高并发、高可用的挑战,旨在帮助开发者在实际项目中做出正确的技术选型和架构设计。

lingRJ777的博客 723

深入理解设计模式-简单工厂模式(静态工厂方法模式)

文章目录一、定义二、使用场景三、代码样例1.需求2.类图3.运算操作类4.操作工厂类5.客户端类四、优缺点结尾 一、定义 简单工厂模式是属于创建型模式,在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 二、使用场景 工厂类负责创建的对

少说,多做 1万+

帆软js--获取控件和单元格

参数面板: 获取面板控件 ,name为控件名称:_g().parameterEl.getWidgetByName("name") 取值:_g().parameterEl.getWidgetByName("tt3").getValue()2323 赋值:_g().parameterEl.getWidgetByName("tt2").setValue("987") 调用对应的事件比...

江湖行骗老中医 7198

从零构建:Trinamic API在STM32上的深度移植与TMC-IDE通信实战

本文详细介绍了如何从零开始在STM32平台上深度移植Trinamic API,并实现与TMC-IDE工具的稳定通信。内容涵盖SPI底层驱动定制、寄存器配置、高级功能实现及调试技巧,重点解析了TMC5160芯片的集成实践,帮助开发者构建可靠的嵌入式运动控制系统。

w1x2y3的博客 254

简单工厂模式(C++描述)

一.简单工厂模式又称静态工厂方法模式(Static Factory Method),它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 1.静态工厂方法统一管理对象的创建。静态工厂方法通过传入的参数判断决定创建哪一个产品的实例,封装了对象的创建,客户端只管消费,实现了对责任(模块)的分割。2.静态工厂方法推迟了产品的实例化。通过XML配置文件就能改变

一步一步 1万+

24年电赛H题 | 想要小车走直线,正在调角度环,但不知道怎么把角度偏航角偏差转化成电机速度输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1314

创建型模式-简单工厂模式(静态工厂方法模式)

目录 1. 简单工厂模式概述 1.1 概念 1.2角色 1.3 类图 2. 简单工厂模式创建原理 3. 简单工厂模式的优缺点 3.1 优点 3.2 缺点 3.3 使用场景 1. 简单工厂模式概述 1.1 概念 简单工厂模式又称为静态工厂方法模式。将一个具体类的实例化交给一个静态工厂方法来执行定义一个类,根据参数的不同返回不同的类的实例。这些类具有公共的...

云上道人的博客 569

2024年游戏策划最新面试题及答案

1. **游戏策划**:负责游戏设计和开发的创意和技术过程。2. **主要职责**:设计游戏玩法、故事、角色、世界等。4. **游戏机制**:定义玩家如何与游戏世界互动的规则。13. **引人入胜的角色**:深入的背景故事、个性特征。3. **游戏平衡**:确保游戏公平、有趣且具有挑战性。7. **RPG特点**:角色发展、故事驱动、玩家选择。12. **关卡设计技巧**:挑战性、流动性、视觉引导。11. **游戏关卡设计**:创建游戏世界的不同阶段。5. **游戏循环**:玩家在游戏中重复的行为模式。

guo162308的博客 2320

(ICLR 2025)【源码讲解+复现】TIMER-XL: Long-Context Transformers for Unified Time Series Forecasting

本文提出了一种统一的多变量时序预测模型Timer-XL,其核心创新包括:1)采用自回归解码器架构,将多变量时序预测统一为next-token预测问题;2)设计TimeAttention机制,通过相对位置编码和因果掩码捕获时序位置和变量间交互;3)支持长上下文预训练以提升零样本迁移能力。模型架构包含嵌入层、时间感知注意力块和预测头,采用MSE损失进行端到端训练。实验表明该方法在多种时序任务上表现优异,特别是在长跨度预测和少样本场景下。代码实现提供了完整的模型定义、数据加载和训练流程,支持自定义配置参数。

1146

java静态工厂方法与工厂模式

静态工厂方法和工厂模式很像,但是在java中还是有很大区别的。(一)静态工厂方法vs工厂模式对于一个类来说,为了让客户端获得一个自身的实例,最常用的方法就是提供一个公有的构造器。除了这种使用构造器的方法之外,对于单个类来说,我们可以定义静态工厂方法来获取自身的类的一个实例。静态工厂方法和工厂模式的不同也体现在此,静态工厂方法是获取这个类自身的一个实例,他的存在是为了更好的描述和处理这个类。而工厂模式

往事散云烟,十寸光阴换一钱 9103

lvgl 9虚拟键盘控件 (lv_keyboard) 使用指南

是 LittlevGL 提供的一个虚拟键盘控件,适用于在图形界面中输入文本。与按钮矩阵类似,虚拟键盘预定义了多个键位布局,支持多种模式和自定义键位映射,能够满足各种文本输入需求。通过与文本区域 (Text Area) 的结合,键盘能够自动将输入的字符传送到指定区域。控件是 LittlevGL 提供的强大虚拟键盘解决方案,适用于任何需要文本输入的界面。通过预定义的键盘模式、自定义键位映射和文本区域自动填充功能,可以大大提升用户输入体验。无论是在嵌入式系统的用户界面中,还是在其他需要虚拟键盘的应用中,

m0_62599305的博客 2185

Java 设计模式之静态工厂方法模式

静态工厂方法模式,又称为简单工厂模式,是最简单最易理解的工厂模式,本文通过一个 “月饼” 例子,一起来学习下这种设计模式吧!

牛角尖 2442

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

简单工厂模式(静态工厂方法(Static Factory Method)模式)

简单工厂模式 所谓的简单工厂模式-----------这里百度百科里面的解释:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工引用百度厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 简单点说就是一个工厂类根据传入

sundaysunshine的博客 1733

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 静态工厂方法,Android 源码中的静态工厂方法

我们知道工厂模式有三兄弟,通常我们说的工厂模式指的是工厂方法模式,它的应用频率最高。本篇博客分享的简单工厂模式是工厂方法模式的“小弟”,确切的来讲它不属于设计模式,而是一种方法。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。今天我们来分享一下简单工厂模式的一些情况,以及它在Android源码中的应用。定义简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Metho...

weixin_39616547的博客 138

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

设计模式-简单工厂模式/静态工厂方法(Static Factory Method)

定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 优点 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工

Robert学习分享 2395

23种设计模式之简单工厂模式

简单工厂 简单工厂模式 简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。 概述 简单工厂模式又称为静态工厂模式,它不属于23种设计模式 ,但现实中却经常会用到。 具体实现为定义一个类,该类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。其实就是将一个具体类的实例化交给一个类的静态方法来执行,该类被称为工厂类,静态方法被称为静态工厂方法,思想也非常简单。 参

weixin_45655824的博客 446

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

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

霍英俊 2513

【23种之外】设计模式介绍和简单工厂模式(静态工厂方法)

设计模式-简单工厂模式

学习笔记 293

第09篇 简单工厂模式

一、概述 简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同的 实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。简单工厂模式是一种创建型模式。 二、结构图 简单工厂通过一个工厂类接受调用者的入参来决...

mail_liuxing的专栏 383
上一篇: 单例模式
下一篇: 工厂方法模式
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值