设计模式-创建型模式-工厂模式

server/2025/1/15 21:58:05/

 工厂模式是一种用来创建对象的模式,它将对象的创建和使用分离开来,使得代码更加灵活和可扩展。

下面代码中CarFactory是一个工厂类,它根据传入的参数来创建不同类型的Car对象。通过工厂模式,在不改变客户端代码的情况下轻松地添加新的品牌汽车。

java">/*** 创建型模式--工厂模式* 工厂模式是一种用来创建对象的模式,它将对象的创建和使用分离开来,使得代码更加灵活和可扩展** 使用工厂模式来创建汽车*/
public class FactoryMode {// 抽象产品类abstract static class Car {public abstract void drive();}// 具体产品类static class BenzCar extends Car {@Overridepublic void drive() {System.out.println("Drive Benz Car");}}static class BmwCar extends Car {@Overridepublic void drive() {System.out.println("Drive Bmw Car");}}// 工厂类// CarFactory是一个工厂类,它根据传入的参数来创建不同类型的Car对象。通过工厂模式,在不改变客户端代码的情况下轻松地添加新的品牌汽车。static class CarFactory {public static Car createCar(String type) {if ("Benz".equalsIgnoreCase(type)) {return new BenzCar();} else if ("Bmw".equalsIgnoreCase(type)) {return new BmwCar();} else {throw new IllegalArgumentException("Invalid car type");}}}// 使用工厂模式创建汽车public static void main(String[] args) {Car benzCar = CarFactory.createCar("Benz");Car bmwCar = CarFactory.createCar("Bmw");benzCar.drive();bmwCar.drive();}
}

http://www.ppmy.cn/server/24848.html

相关文章

【AGX】Ubuntu20.04 + ROS_ noetic+ 大疆Mid360激光 雷达评测

大家好,我是虎哥,最近组装机器人,使用到了大疆孵化的圳市览沃科技有限公司(简称Livox览沃科技)推出的觅道系列全新混合固态激光雷达Mid-360,顺便试试效果,也记录一下使用入门过程。 "觅道M…

MySQL怎么看死锁记录

这个结果分成三部分: (1) TRANSACTION,是第一个事务的信息; (2) TRANSACTION,是第二个事务的信息; (3)WE ROLL BACK TRANSACTION (1),是最终的处理结果,表示回滚了第一个事务。 第一个事务的信…

使用Keil移植工程时修改单片机型号参数

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 当使用Keil对STM32系列单片机开发时,如果使用的是库函数,那么不同型号单片机的工程项目文件是可以直接移植的。只需要按照下面的步骤修改对应的芯片,就可以直接将工程移植过去&a…

在 Python 中使用 PyPDF2 向 PDF 文件批量添加水印

目录: 使用 PyPDF2 添加水印到 PDF 文件批量添加水印到 PDF 文件所有页 PDF 文件广泛用于不同的设备和平台上,在某些情况下,可能需要在 PDF 文件中申明版权,需要将水印、条形码、二维码等添加到 PDF 中。PyPDF2 提供了一种将另一个…

【go项目01_学习记录day01】

博客系统 1 vscode开发go项目插件推荐1.1 CtrlShiftP(俗称万能键) :打开命令面板。在打开的输入框内,可以输入任何命令。1.2 开发时,我们需要经常查阅 Go 语言官方文档,可惜因国内访问外网不稳定&#xff0…

Excel区间计数(频数)函数--FREQUENCY

笔者近日遇到了一个小问题,需要统计各分数段的学生个数,于是想到了FREQUENCY函数。使用FREQUENCY函数需要首先添加一个辅助列,输入各个分隔点,选中B2:B13单元格区域,输入公式: FREQUENCY(B2:B13,G2:G4)

认识HTTP

HTTP缺点 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,可能遭遇伪装 无法证明报文的完整性,所以有可能遭篡改 一、通信使用明文(不加密),内容可能会被窃听 TCP/…

(学习日记)2024.05.05:UCOSIII第五十九节:User文件夹函数概览(uCOS-III->Source文件夹)第五部分

之前的章节都是针对某个或某些知识点进行的专项讲解,重点在功能和代码解释。 回到最初开始学μC/OS-III系统时,当时就定下了一个目标,不仅要读懂,还要读透,改造成更适合中国宝宝体质的使用方式。在学完野火的教程后,经过几经思考,最后决定自己锦上添花,再续上几章。 这…