当前位置: 首页 > news >正文

工厂模式(初学)

工厂模式

1、简单工厂模式

  • 是一种创建型设计模式,旨在通过一个工厂类(简单工厂)来封装对象的实例化过程

运算类

  • public class Operation {   //这个是父类private double num1;  //运算器中的两个值private double num2;public double getNum1() {return num1;}public void setNum1(double num1) {this.num1 = num1;}public double getNum2() {return num2;}public void setNum2(double num2) {this.num2 = num2;}public double getResult() {  //用于子类获取结果double result = 0;return result;}
    }
    

加减乘类

  • public class OperationAdd extends Operation{  //加法@Overridepublic double getResult() {double result = 0;result = super.getNum1() + super.getNum2();  //从父类获取值return result;}
    }
    
  • public class OperationSub extends Operation{ //减法@Overridepublic double getResult() { double result = 0;result = super.getNum1() - super.getNum2();  //从父类获取值return result;}  
    }
    
  • public class OperationMul extends Operation{//乘法@Overridepublic double getResult() {double result = 0;result = super.getNum1() * super.getNum2();  //从父类获取值return result;}  
    }
    

工厂类

  • public class OperationFactory {public static Operation createOperation(String operate) {    //这个是个工厂类Operation op = null;   //这个为null是因为要通过符号来确定子类对象switch (operate) {     //判断符号,实例合适的对象case "+":op = new OperationAdd();break;case "-":op = new OperationSub();break;case "*":op = new OperationMul();break;}return op;}
    }
    

Main

  • public class Main {public static void main(String[] args) {Operation op = new OperationAdd();op = OperationFactory.createOperation("*");   //只要输出合适的计算符号,工厂类就会实例出该有的对象op.setNum1(1);op.setNum2(2);double rusult = op.getResult();System.out.println(rusult);}
    }
    

2、工厂模式实现

相关文章:

工厂模式(初学)

工厂模式 1、简单工厂模式 是一种创建型设计模式,旨在通过一个工厂类(简单工厂)来封装对象的实例化过程 运算类 public class Operation { //这个是父类private double num1; //运算器中的两个值private double num2;public double getNu…...

python试题实例

背景: 在外地出差,突然接到单位电话,让自己出一些python考题供新人教育训练使用,以下是10道Python编程试题及其答案: 1.试题:请写一个Python程序,计算并输出1到100之间所有偶数的和。 答案&am…...

Java Heap Space问题解析与解决方案(InsCode AI 创作助手)

Heap Space问题是Java开发中常见的内存溢出问题之一,我们需要理解其原因和表现形式,然后通过优化代码、增加JVM内存和使用垃圾回收机制等方法来解决。 一、常见报错 java.lang.OutOfMemoryError: Java heap space二、Heap Space问题的原因 对象创建过…...

基于遥感影像的分类技术(监督/非监督和面向对象的分类技术)

遥感图像分类技术 “图像分类是将土地覆盖类别分配给像素的过程。例如,类别包括水、城市、森林、农业和草原。”前言 – 人工智能教程 什么是遥感图像分类? 遥感图像分类技术的三种主要类型是: 无监督图像分类监督图像分类基于对象的图像分析…...

插入兄弟元素 insertAfter() 方法

insertAfter() 方法在被选元素后插入 HTML 元素。 提示&#xff1a;如需在被选元素前插入 HTML 元素&#xff0c;请使用 insertBefore() 方法。 语法 $(content).insertAfter(selector)例子&#xff1a; $("<span>Hello world!</span>").insertAfter(…...

【C++项目】高并发内存池第二讲中心缓存CentralCache框架+核心实现

CentralCache 1.框架介绍2.核心功能3.核心函数实现介绍3.1SpanSpanList介绍3.2CentralCache.h3.3CentralCache.cpp3.4TreadCache申请内存函数介绍3.5慢反馈算法 1.框架介绍 回顾一下ThreadCache的设计&#xff1a; 如图所示&#xff0c;ThreadCache设计是一个哈希桶结构&…...

Git基础教程

一、Git简介 1、什么是Git&#xff1f; Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同&#…...

stm32外部时钟为12MHZ,修改代码适配

代码默认是8MHZ的&#xff0c;修改2个地方&#xff1a; 第一个地方是这个文件的这里&#xff1a; 第二个地方是找到这个函数&#xff1a; 修改第二个地方的这里&#xff1a;...

【数据结构】八大排序

目录 1. 排序的概念及其作用 1.1 排序的概念 1.2 排序运用 1.3 常见的排序算法 2. 常见排序算法的实现 2.1 插入排序 2.1.1 基本思想 2.1.2 直接插入排序 2.1.3 希尔排序&#xff08;缩小增量排序&#xff09; 2.2 选择排序 2.2.1 基本思想 2.2.2 直接选择排序 2.2…...

MYSQL(事务+锁+MVCC+SQL执行流程)理解

一)事务的特性: 一致性:主要是在数据层面来说&#xff0c;不能说执行扣减库存的操作的时候用户订单数据却没有生成 原子性:主要是在操作层面来说&#xff0c;要么操作完成&#xff0c;要么操作全部回滚&#xff1b; 隔离性:是自己的事务操作自己的数据&#xff0c;不会受到到其…...

解密一致性哈希算法:实现高可用和负载均衡的秘诀

解密一致性哈希算法&#xff1a;实现高可用和负载均衡的秘诀 前言第一&#xff1a;分布式系统中的数据分布问题&#xff0c;为什么需要一致性哈希算法第二&#xff1a;一致性hash算法的原理第三&#xff1a;一致性哈希算法的优点和局限性第四&#xff1a;一致性哈希算法的安全性…...

Python脚本:让工作自动化起来

Python是一种流行的编程语言&#xff0c;以其简洁和易读性而闻名。它提供了大量的库和模块&#xff0c;使其成为自动化各种任务的绝佳选择。 本文将探讨Python脚本及其代码&#xff0c;可以帮助您自动化各种任务并提高工作效率。无论您是开发人员、数据分析师还是只是想简化工…...

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—广州大学城专场!!!(暨全额奖学金政策)

香港科技大学广州&#xff5c;可持续能源与环境学域博士招生宣讲会—广州大学城专场&#xff01;&#xff01;&#xff01;&#xff08;暨全额奖学金政策&#xff09; “面向未来改变游戏规则的——可持续能源与环境学域” &#xfffd;&#xfffd;&#xfffd;专注于能源环…...

uni-app:多种方法写入图片路径

一、文件在前端文件夹中 1、相对路径引用 从当前文件所在位置开始寻找图片文件的路径。../../ 表示返回两级目录&#xff0c;即从当前文件所在的 wind.vue 所在的位置开始向上回退两级。接着&#xff0c;进入 static 目录&#xff0c;再进入 look 目录&#xff0c;最后定位到 …...

共谋工业3D视觉发展,深眸科技以自研解决方案拓宽场景应用边界

随着中国工业领域自动化程度逐渐攀升&#xff0c;“机器换人”这一需求进一步提升。在传统2D工业视觉易受环境光干扰、无法进一步获取物体深度信息的限制条件下&#xff0c;工业3D视觉凭借着更强的空间和深度感知能力&#xff0c;以及通过点云数据获取物体距离和三维坐标信息的…...

前端面试基础面试题——11

1.什么是 vue 的计算属性&#xff1f; 2.vue怎么实现页面的权限控制 3.watch的作用是什么 4.响应式系统的基本原理 5.vue-loader 是什么&#xff1f;使用它的用途有哪些&#xff1f; 6.vuex 工作原理详解 7.vuex 有哪几种属性&#xff1f; 8.什么是 MVVM&#xff1f; 9…...

SQL server中内连接和外连接的区别、表达(表的连接)

SQL server中内连接与外连接的区别、表达 区别表达内连接外连接 待续 首先&#xff0c;内连接和外连接都是对表的连接操作 区别 内连接&#xff1a;连接结果仅包含符合连接条件的行&#xff0c;其中至少一个属性是共同的&#xff1b;注意区分在嵌套查询时使用的any以及all的区…...

Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)

Linux中的shell外壳与权限[包含目录文件的权限,粘滞位的来龙去脉] 一.shell外壳的理解1.为什么需要有shell外壳的存在?2.什么是shell外壳?3.shell外壳的运行原理是什么?4.shell和bash的关系 二.Linux中的用户权限1.用户分类与身份切换1.用户分类2.root用户切换为普通用户1.s…...

力扣第45题 跳跃游戏II c++ 贪心算法

题目 45. 跳跃游戏 II 中等 相关标签 贪心 数组 动态规划 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处…...

1024动态

感叹一下当前行情 从事码农这些年今年是最难的一年...

Git-Sim终极调试指南:快速解决常见错误与性能优化技巧

Git-Sim终极调试指南&#xff1a;快速解决常见错误与性能优化技巧 【免费下载链接】git-sim Visually simulate Git operations in your own repos with a single terminal command. 项目地址: https://gitcode.com/gh_mirrors/gi/git-sim Git-Sim是一款强大的Git操作可…...

春行歌(原创诗)

江河湖海卷浪涛&#xff0c;日月星辰北斗昊。山峰高耸明月颂&#xff0c;潺潺流水育万物。大道之行在至简&#xff0c;路途迢迢智行远。仰天长啸动九州&#xff0c;敢叫大千换新颜。混沌未凿辟天地&#xff0c;宇宙万象守天道。万法归一倡本源&#xff0c;百川万里寻道宗。...

5个高效步骤:Win11Debloat让Windows系统臃肿问题迎刃而解

5个高效步骤&#xff1a;Win11Debloat让Windows系统臃肿问题迎刃而解 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and…...

如何快速掌握OpenEMS:开源能源管理系统的完整指南

如何快速掌握OpenEMS&#xff1a;开源能源管理系统的完整指南 【免费下载链接】openems OpenEMS - Open Source Energy Management System 项目地址: https://gitcode.com/gh_mirrors/op/openems 想要打造智能能源管理系统却不知从何入手&#xff1f;OpenEMS开源能源管理…...

3步搭建你的演唱会抢票自动化助手:告别手速焦虑

3步搭建你的演唱会抢票自动化助手&#xff1a;告别手速焦虑 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper DamaiHelper是一个基于Python开发的智能抢票工具&#xff0c;专门针对大麦网演唱会门票…...

OpenClaw+Phi-3-mini-128k-instruct成本对比:自建模型VS商用API实测

OpenClawPhi-3-mini-128k-instruct成本对比&#xff1a;自建模型VS商用API实测 1. 为什么需要做这个成本对比 上个月我在用OpenClaw自动化处理公司季度报表时&#xff0c;突然收到OpenAI API的账单提醒——单月费用突破了800元。作为一个个人开发者&#xff0c;这个数字让我不…...

3步解决魔兽争霸III现代兼容难题:写给经典RTS玩家的优化指南

3步解决魔兽争霸III现代兼容难题&#xff1a;写给经典RTS玩家的优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为魔兽…...

Linux内核SLUB调试之slabinfo工具

前面我们介绍了Linux内核SLUB调试功能,现在我们来介绍一下slabinfo等相关的工具,这对于理解并调试slab缓存功能很有帮助。 slabinfo介绍 slabinfo 不是普通系统命令,而是内核源码自带的官方调试工具。 它的源码位于内核源码树的tools/mm/slabinfo.c,由内核社区直接维护,…...

汽车牌照数据集 YOLO 目标检测 | 可下载

点击下载数据集~ 关于数据集&#xff1a; 数据集&#xff1a;汽车牌照检测 该数据集包含车牌图像及其对应的YOLO格式标注。它旨在用于训练和评估专注于检测图像中车牌的模型。 数据集概览&#xff1a; 图片总数&#xff1a; 433 张车牌图片 图片格式&#xff1a; .png 标…...

新手友好:黑丝空姐-造相Z-Turbo镜像的详细操作步骤

新手友好&#xff1a;黑丝空姐-造相Z-Turbo镜像的详细操作步骤 你是不是对AI生成图片很感兴趣&#xff0c;特别是想试试那些能生成特定风格图片的模型&#xff1f;今天要介绍的这个“黑丝空姐-造相Z-Turbo”镜像&#xff0c;就是一个专门用于生成黑丝空姐风格图片的AI模型服务…...