工厂方法模式

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置 本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。 阅读详情

工厂方法模式

之前的那个简单工厂 只有一个工厂啊 如果类型很多不利于扩展 因为类型多 责任重大啊  

工厂方法模式,相当于 根据产品做了分类  比如 比亚迪 里面有很多  比亚迪系列的 

这样有了个分类,大家看看代码,自己手动敲一敲:

需要什么汽车就要去对应的厂家(后者说是4S店)

工厂方法模式

什么是工厂方法模式

 

工厂方法模式Factory Method,又称多态性工厂模式。在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体创建的工作交给子类去做。该核心类成为一个抽象工厂角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

这种比简单工厂模式的扩展性提升了很大呀;

看下结构:

定义产品接口:

package FactoryModel;

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

实现产品的类:

package FactoryModel;

public class BydCar implements Car {

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

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

public class JiLiCar implements Car {

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

定义工厂接口:

package FactoryModel;

//汽车厂
public interface CarFactory {
   
   Car CreateCar(String name);
    
}

工厂接口的实现类(细分了):

1、比亚迪工厂(或者4S店)

package FactoryModel;

public class BydFactory implements CarFactory {
   
       @Override
    public Car CreateCar(String name) {
        if (name.equals("比亚迪F3")){   //里面有很多型号的
            return new BydCar();
        }
        if (name.equals("比亚迪E6")) {
            return new BydCarE();
            
        }
        return new BydCar();
    }
}

2、吉利工厂(或者4s店)

package FactoryModel;

public class JiLiFactory implements CarFactory {
  
      @Override
    public Car CreateCar(String name) {
        if (name.equals("吉利帝豪")) {
            return new JiLiCar();
        }  
        return new JiLiCar();
        
    } 
    
}

客户端;

package FactoryModel;

public class Client {

      public static void main(String[] args) {
       
        CarFactory bydFactory = new BydFactory();
        Car bydCar = bydFactory.CreateCar("比亚迪F2");
        bydCar.run();
        Car bydcarE = bydFactory.CreateCar("比亚迪E6");
        bydcarE.run();
        
        
        CarFactory  jiliFactory = new JiLiFactory();
        Car jiliCar = jiliFactory.CreateCar("吉利帝豪");
        jiliCar.run();
          
    }
    
}

运行结果:

 

 

工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现

优点  客户端不需要在负责对象的创建,从而明确了个各类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性

缺点 需要额外的编写代码 增加了工作量

 

SerDes电路的PCB仿真设计规则及策略 SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。 阅读详情

相关推荐

ADS2016子电路封装避坑指南:手把手教你制作可复用的自定义Symbol

本文详细介绍了在ADS2016中制作可复用的自定义Symbol的全流程,重点解析了子电路封装的常见问题与解决方案。从电路模块的标准化处理、Hierarchy创建技巧到Symbol视觉优化和库管理策略,帮助工程师提升射频与微波电路设计效率。特别针对Symbol比例适配和引脚优化等核心问题,提供了实用的避坑指南和工程验证方法。

weixin_30275415的博客 213

工厂方法学习

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33812433的博客 147

基于虚拟阻抗重塑的构网型VSG变流器SISO序阻抗建模与宽频振荡抑制策略分析(面向高比例新能源并网场景)

本文深入探讨了基于虚拟阻抗控制的构网型VSG变流器SISO序阻抗建模技术及其在高比例新能源并网场景中的宽频振荡抑制策略。通过虚拟阻抗重塑,有效改善了变流器的阻抗特性,解决了次/超同步频段的振荡问题,并提供了参数设计、阻抗扫频验证等实用技巧,为新能源并网系统的稳定性提供了可靠解决方案。

weixin_29268385的博客 251

设计模式——工厂方法模式详解

0.前言实际上工厂模式分为三种,第一种是简单工厂模式,第二种是工厂方法模式,第三种是抽象工厂模式。此篇为工厂方法模式的详解,那为什么跳过了简单工厂模式呢,是因为这两种模式差别不大,差异之处会在本文中指出,懂了工厂方法模式,稍微解释就懂了简单工厂模式。所以仔细看哦~还有就是抽象工厂模式,这个模式以后会另外写文章介绍。1.工厂方法模式模式介绍工厂方法模式定义……...

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 1万+

微机原理课程设计-模拟十字路口交通信号灯

一、设计任务描述 1.1设计目的 通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 1.2 设计要求 控制LED灯,按照十字路口红绿灯的原理亮灭显示: (1) 东西方向车辆放行x秒...

Learning_is_endless的博客 2万+

SPSS_Process—简单&平行&链式中介模型

本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。

m0_54401011的博客 4万+

Java 工厂方法模式

深入理解 Java工厂方法模式

小凯的博客 1303

STM32 上 FreeRTOS 的启动与任务调度详解

4. SysTick定时器:FreeRTOS启动调度器后,会接管STM32的SysTick定时器,用于生成系统节拍,因此不要在HAL库中重复配置SysTick(比如HAL_Init()中已配置,无需再手动调用SysTick_Config()),否则会导致系统节拍异常,任务延迟不准。2. 任务栈大小需按需配置,不是越大越好(浪费RAM),也不能太小(会导致栈溢出),比如简单的传感器读取任务,1024字(4096字节)足够,复杂任务(比如串口接收+数据解析)可调整为2048字。

qq_40170041的博客 867

设计模式——工厂方法模式

使用Java实现了工厂方法模式,并且通过实例代码来了解工厂方法模式,证明了工厂方法模式符合“OCP”原则。

姑娘眼中的明月色,就只有你一人,轻轻望去,才能发现。 2373

四款办公Agent实测对比:WorkBuddy、千问办公、库库AI、豆包工作怎么选

AI Agent是一种能感知环境、自主决策并执行动作的智能系统,其核心在于工具调用、状态管理与错误恢复构成的执行闭环。在办公场景中,任务边界清晰、容错率高、重复性强,使Agent成为最容易落地的方向。通过调用本地文件、脚本或办公套件,Agent能自动完成文件批量处理、文档摘要、会议纪要等重复劳动,显著提升工作效率。目前WorkBuddy、千问办公、库库AI、豆包工作等产品分别从本地操作、办公套件嵌入、知识处理、轻量助手等路线切入,用户可根据自身场景选择。

weixin_29052717的博客 522

使用 Simulink 实现基于相控阵雷达的波束形成技术

摘要:本文详细介绍了利用MATLAB Simulink和Phased Array System工具箱实现相控阵雷达波束形成的完整流程。主要内容包括:1)创建Simulink模型;2)设计天线阵列参数;3)信号生成模块配置;4)波束形成算法实现;5)结果可视化方法;6)仿真调试与优化;7)代码导出与部署。通过分步指导,读者可以掌握从理论到实践的完整开发流程,包括关键参数设置和算法实现示例。该方案适用于军事、气象等领域的雷达系统开发,并支持后续嵌入式和智能算法集成。

xiaoheshang_123的博客 181

23种设计模式——工厂方法模式

工厂方法模式实质:延迟到子类来选择实现。

qq_51165184的博客 1405

[Godot][入门] 安装与版本选择:3.x 还是 4.x?(按项目类型一键决策)

摘要: Godot引擎版本选择需根据项目需求权衡3.x与4.x。Godot4.x(如4.2)适合3D开发和新项目,支持Vulkan和GDScript2.0,但生态尚不成熟;Godot3.x(如3.5.3)则更适合稳定2D开发、Web导出及依赖现有插件/教程的场景。安装方式极简,官网下载解压即可运行。新手建议:短期高效选3.x,长期探索选4.x,旧项目勿盲目迁移。附版本对比表及决策树,助开发者快速匹配需求。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 910

Python 工厂方法模式

今日分享主题:Python 工厂方法模式 工厂,大家一般能想到的是生产产品的地方,在设计模式中,工厂可分为:简单工厂模式、工厂方法模式。在前期推文Python 简单工厂模式中有关于简单工厂模式的解读。 根据工厂的抽象程度可分为:工厂方法模式、抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。 背景 在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。 简单工厂模式最大的缺点是:当有新产...

Python+大数据+数据分析+自动化+Vue组件开发 449

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值