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

用r语言 做网站点击热力图舟山新闻最新消息

用r语言 做网站点击热力图,舟山新闻最新消息,北京比较好的品牌设计公司,wordpress登录界面插件Go和Java实现简单工厂模式 本文通过计算器案例来说明简单工厂模式的使用#xff0c;使用Go语言和Java语言实现。 1、简单工厂模式 简单工厂模式对对象创建管理方式最为简单#xff0c;只需要创建一个简单的工厂类然后在里面创建对象#xff0c;该模式通过向工 厂传递类型…Go和Java实现简单工厂模式 本文通过计算器案例来说明简单工厂模式的使用使用Go语言和Java语言实现。 1、简单工厂模式 简单工厂模式对对象创建管理方式最为简单只需要创建一个简单的工厂类然后在里面创建对象该模式通过向工 厂传递类型来指定要创建的对象。 由于 Go 本身是没有构造函数的一般而言我们采用 NewName 的方式创建对象/接口当它返回的是接口的时 候其实就是简单工厂模式。 2、Go实现简单计算器 下面实现一个简单的计算器包含简单的加减乘除功能。 package factory// 这里实现一个简单的计算器 // 计算接口,包含计算数的设置和结果的计算 type Operation interface {// 设置进行计算的两个数SetNumberA(float64)SetNumberB(float64)// 计算Calculate() (float64, error) }package factory// 加法 type AddOperation struct {// 包含两个操作数numberA float64numberB float64 }func (addOperation *AddOperation) Calculate() (float64, error) {return addOperation.numberA addOperation.numberB, nil }func (addOperation *AddOperation) SetNumberA(numberA float64) {addOperation.numberA numberA }func (addOperation *AddOperation) SetNumberB(numberB float64) {addOperation.numberB numberB }package factory// 减法 type SubOperation struct {// 包含两个操作数numberA float64numberB float64 }func (subOperation *SubOperation) Calculate() (float64, error) {return subOperation.numberA - subOperation.numberB, nil }func (subOperation *SubOperation) SetNumberA(numberA float64) {subOperation.numberA numberA }func (subOperation *SubOperation) SetNumberB(numberB float64) {subOperation.numberB numberB }package factory// 乘法 type MulOperation struct {// 包含两个操作数numberA float64numberB float64 }func (mulOperation *MulOperation) Calculate() (float64, error) {return mulOperation.numberA * mulOperation.numberB, nil }func (mulOperation *MulOperation) SetNumberA(numberA float64) {mulOperation.numberA numberA }func (mulOperation *MulOperation) SetNumberB(numberB float64) {mulOperation.numberB numberB }package factoryimport errors// 除法 type DivOperation struct {// 包含两个操作数numberA float64numberB float64 }func (divOperation *DivOperation) Calculate() (float64, error) {if divOperation.numberB 0 {return -1, errors.New(被除数不能为0)} else {return divOperation.numberA / divOperation.numberB, nil} }func (divOperation *DivOperation) SetNumberA(numberA float64) {divOperation.numberA numberA }func (divOperation *DivOperation) SetNumberB(numberB float64) {divOperation.numberB numberB }package constantconst (Add Sub -Mul *Div / )package factoryimport proj/constant// 工厂类 type OperationFactory struct { }func (operationFactory *OperationFactory) CreateOperate(operate string) Operation {switch operate {case constant.Add:return AddOperation{}case constant.Sub:return SubOperation{}case constant.Mul:return MulOperation{}case constant.Div:return DivOperation{}}return nil }package mainimport fmt import . proj/factory import proj/constant// 测试 func main() {// 全局变量var numberA float64 200var numberB float64 100var operation Operationvar result float64var err error// 创建工厂operationFactory : OperationFactory{}// 加法operation operationFactory.CreateOperate(constant.Add)operation.SetNumberA(numberA)operation.SetNumberB(numberB)result, err operation.Calculate()if err ! nil {fmt.Println(err)} else {fmt.Println(Add Result:, result)}// 减法operation operationFactory.CreateOperate(constant.Sub)operation.SetNumberA(numberA)operation.SetNumberB(numberB)result, err operation.Calculate()if err ! nil {fmt.Println(err)} else {fmt.Println(Sub Result:, result)}// 乘法operation operationFactory.CreateOperate(constant.Mul)operation.SetNumberA(numberA)operation.SetNumberB(numberB)result, err operation.Calculate()if err ! nil {fmt.Println(err)} else {fmt.Println(Mul Result:, result)}// 除法operation operationFactory.CreateOperate(constant.Div)operation.SetNumberA(numberA)operation.SetNumberB(numberB)result, err operation.Calculate()if err ! nil {fmt.Println(err)} else {fmt.Println(Div Result:, result)} }# 程序输出 Add Result: 300 Sub Result: 100 Mul Result: 20000 Div Result: 23、Java实现简单计算器 package com.factory;// 这里实现一个简单的计算器 // 计算接口,包含计算数的设置和结果的计算 public abstract class Operation {private double numberA;private double numberB;// 设置进行计算的两个数public double getNumberA() {return numberA;}public void setNumberA(double numberA) {this.numberA numberA;}public double getNumberB() {return numberB;}public void setNumberB(double numberB) {this.numberB numberB;}// 计算public abstract double Calculate(); }package com.factory;// 加法 public class AddOperation extends Operation {Overridepublic double Calculate() {return this.getNumberA() this.getNumberB();} }package com.factory;// 减法 public class SubOperation extends Operation {Overridepublic double Calculate() {return this.getNumberA() - this.getNumberB();} }package com.factory;// 乘法 public class MulOperation extends Operation {Overridepublic double Calculate() {return this.getNumberA() * this.getNumberB();} }package com.factory;// 除法 public class DivOperation extends Operation {Overridepublic double Calculate() {if (this.getNumberB() 0) {throw new RuntimeException(被除数不能为0!);} else {return this.getNumberA() / this.getNumberB();}} }package com.factory;public enum OperationType {ADD, SUB, MUL, DIV; }package com.factory;// 工厂类 public class OperationFactory {public Operation CreateOperate(OperationType operate) {switch (operate) {case ADD:return new AddOperation();case SUB:return new SubOperation();case MUL:return new MulOperation();case DIV:return new DivOperation();}return null;} }package com.factory;public class Test {public static void main(String[] args) {// 全局变量Operation operation null;double result 0;// 创建工厂OperationFactory operationFactory new OperationFactory();// 加法operation operationFactory.CreateOperate(OperationType.ADD);operation.setNumberA(200);operation.setNumberB(100);result operation.Calculate();System.out.println(result : result);// 减法operation operationFactory.CreateOperate(OperationType.SUB);operation.setNumberA(200);operation.setNumberB(100);result operation.Calculate();System.out.println(result : result);// 乘法operation operationFactory.CreateOperate(OperationType.MUL);operation.setNumberA(200);operation.setNumberB(100);result operation.Calculate();System.out.println(result : result);// 除法operation operationFactory.CreateOperate(OperationType.DIV);operation.setNumberA(200);operation.setNumberB(100);result operation.Calculate();System.out.println(result : result);} }# 程序输出 result :300.0 result :100.0 result :20000.0 result :2.0
http://www.yutouwan.com/news/11885/

相关文章:

  • 做啥网站赚钱企业网站建设方案平台
  • 站酷设计网站官网入做网站贵不
  • 网站域名的作用是什么意思网站建设考核指标
  • 门户网站是指网上商城项目设计方案
  • 阿里云服务器架设网站做周边的网站
  • 网上商城网站建设意义做网站开发的方案
  • 网站的互动功能宁波十大外贸公司
  • 关于网站开发的在线舆情系统
  • 黄石网站建设(乐云践新)网站建设要
  • 建设网站要求广告设计与制作好找工作吗
  • 深圳华鑫峰网站建设中国网站开发的前景
  • 北京大学两学一做网站怎么写网站
  • 旅游网官方网站郑州网站推广价
  • 网站更换主机需要怎么做基层建设期刊在哪个网站被收录
  • 濮阳团购网站建设搜索引擎广告收费方式
  • 深圳网站制作公司资讯建设多语种网站
  • 网站建设价格标准方案高端网站建设公司兴田德润可以不
  • 公司企业网站免费建设三合一网站开发架构
  • 那些网站能够做推广案例学 网页设计与网站建设
  • 网站设计初步规划建筑业企业资质证书多少钱
  • 龙岩网站改版较好的公司张店网站制作首选专家
  • 微信网站设计尺寸百度推广助手客户端
  • 闽清建设局网站做一个电子商务网站建设策划书
  • 做漫画网站的素材织梦网站如何更新系统
  • 南阳旅游网站建设电商外贸平台大全
  • 投简历找工作哪个网站好乐从网站建设
  • 自己做的网站能备案吗用.net做网站好 还是用php
  • 南昌哪里学做网站dw网页制作详细步骤景颇族
  • php招聘网站建设网站风格介绍
  • 创世网站网络建设互联网网站建设一条龙服务