大话设计模式——简单工厂

大话设计模式简单工厂模式c++实现 简单工厂模式 大部分都是大话设计模式上的案例,工厂方法对着简单工厂写的,和书上案例不一致 #include<iostream> using namespace std; //简单工厂模式 //抽象类 class AbstractOperation { public: virtual int GetResult() = 0; void Get(int _NumberA,int _NumberB){ this->NumberA = _NumberA; this->Numbe 阅读详情
 

第一章——简单工厂设计模式

这一章的例题是一个计算器。

首先将运算抽象出来建立一个虚类或者接口

package com.icss.calculater;

public abstract class Operate {
 public abstract double operate(double a,double b) throws Exception;
}

然后子类是加减乘除四则运算。

package com.icss.calculater;//加法

public class Addition extends Operate {

 @Override
 public double operate(double a,double b) {
  
  return a+b;
 }

}

减法和乘法类似不写出来了。除法有个异常情况。

package com.icss.calculater;

public class Div extends Operate {

 @Override
 public double operate(double a, double b)throws Exception {
  if(b==0)//除数为0,抛出异常
  {
   throw new MyException("除数为0");//除数为0异常。

  }
  return a/b;
 }

}

然后是主函数

package com.icss.calculater;
import java.util.*;
public class Counter {

 public static void main(String[] args) throws Exception {//有一个自定义异常
  System.out.println("请输入第一个数");
  Scanner input=new Scanner(System.in);
  int num1=input.nextInt();//输入的第一个运算的数
  System.out.println("请输入要做的运算 1.+;2.-;3.*;4./");
  String ope=input.next();//输入的运算符
  char a=ope.charAt(0);//将输入的运算符String类型的转为char类型。因为switch只能判断int和char型。
  if(a!='+'&&a!='-'&&a!='*'&&a!='/')
  {
   throw new MyException("没有您选择的运算");//一个自定义异常。输入的除开规定的错误运算符。
  }
  System.out.println("请输入第二个数");
  int num2=input.nextInt();
   Operate op=null;//这个就是简单工厂模式。建立一个父类的引用。然后根据条件指向子类对象。感觉就是一个多态的应用。
  switch(a)
  {
   case '+':  op=new Addition();break;
   case '-':  op=new Subtraction();break;
   case '*':  op=new Mul();break;
   case '/':  op=new Div();break;
   
  }
  System.out.println(op.operate(num1, num2));
  
  
 }

}

1、每次写代码的时候要想想要实现的任务,从总到分,从高到低。先构思。不能直接用面向过程的方法写程序。

2、要思考通过封装,继承,多态把程序的耦合度降低。更加灵活,容易修改,易于复用。总得就是高内聚,低耦合。

3、简单工厂设计模式——用一个单独的类来做一个创造实例的过程,这就是工厂。

4、switch()语句中括号里面只能是int或者char型。

5、String->char。 

  String s="abc";
  char c=s.charAt(2);
  System.out.println(c);      结果为 b

6、自定义异常 不能规定异常的情况,只能用if判断 然后throw。

public class MyException extends Exception {
 public MyException(String msg)
 {
  super(msg);
 }
}

 

allegro 约束管理Constraint Manager(一) 介绍Cadence allegro 约束管理器CM的使用方法。 阅读详情

相关推荐

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

大话设计模式系列——简单工厂模式总结

emmm......之所以写这个系列,是因为想去进阶,感觉写自己代码不够精简,亢沉臃肿;想写好写优雅写优秀,却不知道是不是优秀,模棱两可的感觉;想去入手源码,却不知道从拿下手,又或者说看不懂,为什么这么写。 所以想入手设计模式系列,当然这些理解或者示例代码是建立在《大话设计模式》——程杰著的基础之上的。感觉这本书还是值得推荐的_ 仅属个人理解,如果有误,欢迎各位指正^_^ 在未接触到设计...

罗伯特是疯子丶 304

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2762

设计模式之简单工厂模式(来自大话设计模式)

设计模式之简单工厂模式(来自大话设计模式) 组成类:一个父类,n个子类,一个工厂类,一个客户端 例子:商场收费软件,营业员根据客户所购买商品的单价和数量,向客户收费。 UML图: 现金收费类(抽象类,父类) abstract class CashSuper { public abstract double acceptCash(double money); } 正常收费子类 class CashNormal extends CashSuper{ @Override public

weixin_39809036的博客 251

农经权二轮延包—地块示意图生成

本文介绍了地块示意图制作软件的使用方法及模板制作要点。软件通过设置六个参数(示意图模板、属性数据、地块DBF、导航图、地块图片及存放位置)自动生成Word文档,并可导出PDF。文章详细说明了5页Word模板的制作过程,包括页脚三栏设置和页码插入技巧,支持每户最多28个地块的情况。同时指出该软件生成的图片分辨率(300dpi)满足清晰度要求,并提及软件免费提供插件但收费提供后续服务。

weixin_47364423的博客 1112

大疆上云API-1.10.0版本-设备位置数据实时处理与WebSocket推送实战解析

本文深入解析了大疆上云API 1.10.0版本中设备位置数据的实时处理与推送全链路。通过剖析源码,详细阐述了从MQTT接收OSD数据、Spring Integration路由分发、业务逻辑处理到WebSocket实时推送至前端地图的核心流程,并提供了实战优化与避坑指南,帮助开发者构建高可靠的无人机实时定位系统。

weixin_29291863的博客 412

大话设计模式(一)简单工厂模式

今天主要设计简单工厂模式即静态工厂设计模式与工厂模式即抽象模式。 其中,简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建 其他类的实例,被创建的实例通常都具有共同的父类。 简单工厂模式中包含的角色及其职责: 1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调 用,创建所需的产品对象。 2

IT全栈 华强工作室 5万+

别再只看成交量了!用通达信这个VOL监测公式,一眼识别主力吸筹与出货信号

本文详细介绍了通达信VOL监测公式的实战应用,通过彩色量柱和换手率分层技术,帮助投资者识别主力吸筹与出货信号。该公式结合动态量能标准化和多周期均线组合,提供可视化主力行为图谱,提升交易决策的准确性。

weixin_28693447的博客 657

《大话设计模式》——简单工厂模式

C#视频学习结束后,自己开始了设计模式之旅,对于我这个菜鸟来说,学习设计模式有点困难,课本上的例子照着敲实现容易,但是自己真能做到举一反三确实很难,感觉自己学的老不踏实了。     在弄简单的工厂模式的时候,前几个例子真是贴近我的编写代码的习惯啊,怨不得小菜没有收到被录用的消息哪(就是小菜用C#编写计算机控制台程序的那个),我对《大话设计模式》中的简单工厂模式理解,简单工厂模式就是一个类,里面用

zhoukun@Fly 1413

Cluster Computing投稿

在overleaf中新建picins.sty文件,该文件是导入的包在.tex文件中添加以下内容\usepackage{picins}%实现作者简介%下边这块有几个人复制几段\vspace{0\baselineskip} %这一行控制作者间隔,可视情况改数字!!!!!!!!

这里是萤石ym的学习路途,努力搬砖! 5533

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1263

1【大话设计模式】简单工厂模式

最近空闲时间想学习一下设计模式,之前读书的时候其实有这门课程,但是怎么说呢,上学的时候是当任务在学,感觉设计模式莫得卵用,随着工作的深入,渐渐发现设计模式的重要性,也许我们写代码不用设计模式也能运行,但是设计模式能帮助我们让代码更tm好,主要是需求一直在变,我们写代码要考虑扩展性什么的。。。 说到设计模式,之前其实也学过好几次,每次都是从入门到放弃(希望这次能多看完),主要这个过程比较枯燥。...

tian2342的专栏 306

【软考中级网络工程师】知识点之 ICMP 协议

本文聚焦软考中级网络工程师必备的 ICMP 协议知识,先概述其在 TCP/IP 协议族网络层的地位与无连接特性,再阐述差错报告、网络诊断等功能。解析报文格式,详解差错与查询类报文类型及工作机制,还介绍其在 Ping、Traceroute 命令中的应用,分析常见攻击与防范措施,最后总结核心要点,为网络工程师学习和应用 ICMP 协议提供全面指导。

邓邓子的博客 1402

大话设计模式之简单工厂模式C++实现

博客中的例题及构建思想均来自于程杰老师的“大话设计模式”。 通过封装,继承,多态把程序的耦合度降低,使得程序更加灵活,易于修改且易于重复。 考虑一个用单独的类来创造实例的过程,这就是工厂。 实现简单的四则运算过程: #include<iostream> using namespace std; class Operation { private: double _NumA; double _NumB; public: void SetNumA() { cout << "

SGL_LGS的博客 4112

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大话设计模式 一 简单工厂模式

大话设计模式 一 简单工厂模式

qq_43667184的博客 328

IDEA的使用指南

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

大话设计模式解读01-简单工厂模式

本篇主要介绍设计模式中的简单工厂模式,首先通过一个活字印刷的小故事来体会程序设计中的可维护、可复用、可扩展、灵活性的思想,并引入面向对象设计模式中的三大基本思想:封装、继承、多态,然后通过一个计算器的代码实现的例子,通过C++实现了三个版本的代码,由浅到深地理解面向对象的设计思想以及简单工厂模式的使用。

码农爱学习的博客 1693

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

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

大话设计模式:简单工厂

一、什么是简单工厂 提供创建对象的接口 简单工厂并不是GOF23个设计模式中的一种,但它亦有使用价值。 简单来说就是一个类型的许多子类,可以通过同一个工厂创建方法按需创建。 UML图 二、适用场景 当隔绝具体实现,想将实例的创建集中管理和控制,让创建者不用关心实例怎么创建的。 三、优缺点 优点 帮助封装。客户端可以更好的面向接口编程。 解耦。客户端不需要知道实现类。 缺点 需要理解参数的意义...

weixin_44186849的博客 223

《大话设计模式》简单工厂模式与工厂模式

简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 摘自:https://www.jianshu.com/p/5cb52d84bd6d public class Operation { private: double numA; ...

unirrrrr的博客 240

大话设计模式-简单工厂模式

简单工厂模式阅读笔记

x1027105273的博客 1276

简单工厂模式-大话设计模式

简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF。实现一个计算程序,给定两个数字,返回结果。

一起coding,一起嗨。 1003

大话设计模式(一)——简单工厂模式

文章目录一、前言二、概述三、演变过程四、优缺点及使用场景 一、前言     前段时间阅读了程杰的《大话设计模式》一书,在不缺乏趣味的同时,学习了如何思考设计模式。现在,笔者打算开启一个设计模式专栏,把自己的所感所悟写下来,以供日后重温。 如果想成为一名优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀软件本身更有价值,因为设计的演变过程中蕴含大智慧。     正如本书作者所说,学习设计模式...

不骄不躁,磨砥刻厉 621

linkin大话设计模式--简单工厂

什么是工厂方法:将多个类对象交给工厂来生成的设计被称为简单工厂模式

LinkinPark的博客 689

大话设计模式之简单工厂模式代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 简单工厂模式 {     //operation 运算类     public class operation     {         private double _numberA = 0;         private double _numberB = 0

要少敏 信息技术提高班 859

大话设计模式——简单工厂模式

面向过程 需求:使用Java实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。 1)简单实现 public static void version1() { Scanner scanner = new Scanner(System.in); System.out.println("请输入数字A:"); int A = scanner.nextInt(); System.out.println("请输入数字B:");

不见长安见晨雾 624

《大话设计模式》——1.简单工厂设计模式

简单工厂模式——计算器实现

weixin_43487532的博客 652
上一篇: 大话设计模式学习心得——面向对象基础
下一篇: 题目8题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
hello_java_
博客等级 码龄15年 20粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值