当前位置: 首页 > 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、工厂模式实现

http://www.lryc.cn/news/204006.html

相关文章:

  • python试题实例
  • Java Heap Space问题解析与解决方案(InsCode AI 创作助手)
  • 基于遥感影像的分类技术(监督/非监督和面向对象的分类技术)
  • 插入兄弟元素 insertAfter() 方法
  • 【C++项目】高并发内存池第二讲中心缓存CentralCache框架+核心实现
  • Git基础教程
  • stm32外部时钟为12MHZ,修改代码适配
  • 【数据结构】八大排序
  • MYSQL(事务+锁+MVCC+SQL执行流程)理解
  • 解密一致性哈希算法:实现高可用和负载均衡的秘诀
  • Python脚本:让工作自动化起来
  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—广州大学城专场!!!(暨全额奖学金政策)
  • uni-app:多种方法写入图片路径
  • 共谋工业3D视觉发展,深眸科技以自研解决方案拓宽场景应用边界
  • 前端面试基础面试题——11
  • SQL server中内连接和外连接的区别、表达(表的连接)
  • Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)
  • 力扣第45题 跳跃游戏II c++ 贪心算法
  • 1024动态
  • 中心胖AP(AD9430DN)+远端管理单元RU(R240D)+出口网关,实现组网
  • shell_45.Linux在脚本中使用 getopt
  • 2023-8-20 CVTE视源股份后端开发实习一面
  • 二叉树进阶
  • 前端性能优化 - 虚拟滚动
  • 手写 Promise(1)核心功能的实现
  • 深入探究Java内存模型
  • 深度学习 | Pytorch深度学习实践 (Chapter 10、11 CNN)
  • 谈谈你对spring boot 3.0的理解
  • 【大数据】Hadoop
  • Spring实例化源码解析之Bean的实例化(十二)