本案例为币包的实际技术应用:

做区块链币包的可以看看,当年老师付我也是想了很久的。

虚拟币币包的工具有很多,那么他们使用的是什么技术实现的呢。咱们利用就将数学【枚举】的虚拟币内环实际应用给大家讲一讲。

测试使用语言:【Java】

1、创建币种类(我就写了4个,方便测试)

基础结构【BaseWallet】

package com.item.btype;import java.math.BigDecimal;
import java.util.Date;public class BaseWallet {private String Id;private String UserId;private Date LastDate;private BigDecimal AllCount;private BigDecimal DisCount;/*** 钱包ID*/public String getId() {return Id;}public void setId(String id) {Id = id;}/*** 用户编号*/public String getUserId() {return UserId;}public void setUserId(String userId) {UserId = userId;}/*** 最后修改时间*/public Date getLastDate() {return LastDate;}public void setLastDate(Date lastDate) {LastDate = lastDate;}/*** 钱包总数量*/public BigDecimal getAllCount() {return AllCount;}public void setAllCount(BigDecimal allCount) {AllCount = allCount;}/*** 冻结数量*/public BigDecimal getDisCount() {return DisCount;}public void setDisCount(BigDecimal disCount) {DisCount = disCount;}
}

交易币【BG】

package com.item.btype;public class BGWallet extends BaseWallet {
}

比特币【BTC】

package com.item.btype;public class BTCWallet extends BaseWallet {
}

以太坊【ETH】

package com.item.btype;public class ETHWallet extends BaseWallet {
}

嫩模币【OMG】

package com.item.btype;public class OMGWallet extends BaseWallet {
}

2、创建币种枚举

package com.item.btype;/*** @author TeacherFu* @date 2021年2月28日12:07:09*/
public enum WalletEnum {BG(1, "BG", "市场币"),BTC(1000, "BTC", "比特币"),ETC(1001, "ETC", "以太坊"),OMG(1002, "OMG", "嫩模币"),;/*** 根据名字换编号** @param Name* @return*/public static int GetId(String Name) {WalletEnum[] values = WalletEnum.values();for (WalletEnum c : WalletEnum.values()) {if (c.getName().equals(Name)) {return c.getId();}}return -1;}/*** 根据ID换名字* @param Id* @return*/public static String GetName(int Id) {for (WalletEnum c : WalletEnum.values()) {if (c.getId() == Id) {return c.getName();}}return null;}/*** 编号*/private int Id;/*** 币种英文名*/private String Name;/*** 币种中文名*/private String Info;/*** 构造方法** @param Id* @param Name* @param Info*/WalletEnum(int Id, String Name, String Info) {}public int getId() {return Id;}public void setId(int id) {Id = id;}public String getName() {return Name;}public void setName(String name) {Name = name;}public String getInfo() {return Info;}public void setInfo(String info) {Info = info;}
}

3、币包选择器

package com.item.btype;import java.math.BigDecimal;/*** 币包操作选择器*/
public class SwitchWallet {/*** 接口层获取移动端的操作币种编号<br/>** @param WalletEnumId* @param UserId* @return 用户当前所查询币种的信息*/public static BaseWallet UserWalletById(int WalletEnumId, String UserId) {/*** 根据WalletEnumId标识进行case选择*/switch (WalletEnumId) {case 1:return new BGWallet();case 1001:return new BTCWallet();case 1002:return new ETHWallet();case 1003:return new OMGWallet();default:return null;}}
}

4、Controller承接数据

package com.item.btype;import java.math.BigDecimal;public class WalletController {/*** 充当接口层* @return*/public Resful AddChange(int WalletEnumId, String Token, BigDecimal ChangeCount){if(WalletEnum.GetName(WalletEnumId)==null){return new Resful("币种不符");}/*** Token兑换UserId* String UserId=redis.TokenToUserId(Token);*/String UserId="asd2asdzpasodospasodpaos";/*** 获取用户某币种钱包信息,使用父类表承接*/BaseWallet bw=SwitchWallet.UserWalletById(WalletEnumId,UserId);//已经获取到对应表的信息,其它功能在业务逻辑层完成即可。return new Resful("成功",bw.getAllCount());}
}

5、总结:

a)、币包的思路就是利用枚举的方式作为币包约束,在集合父子类关系进行简化代码操作。

下篇内容:【】:【】

万丈高楼平地起,程序员数学基础,从小学的【什么是数学】至【离散数学】(主要是图论)咱们一步步成长,共同加油。

程序员数学基础【六、枚举 区块链,虚拟币种、币包约束,内环版本】(Java版本)相关推荐

  1. CSDN日报191105:2019年11月全国程序员工资统计,区块链工程师比算法工资高

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 2019年11月全国程序员工资统计,区块链工程师比算法工资高 作者:有数可据 我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布 ...

  2. 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!

    在今年315晚会上,品牌连锁餐厅将过期的汉堡包正常提供给消费者食用事件登上热搜,引起大众哗然. 早在2019年,国务院发布<关于深化改革加强食品安全工作的意见>,对于区块链技术的食品安全应 ...

  3. CSDN技术分享——程序员如何快速上手区块链底层技术?

    区块链,应该是这两年来最火的话题.相比去年年末到今年年初,其火热程度虽有所降低,但依旧会有很多人想了解,想探寻其中的奥秘. 令人尴尬的是,真正火起来的不是区块链技术本身,而是数字资产和相关炒作.你跟  ...

  4. 2019年11月全国程序员工资统计,区块链工程师比算法工资高。

    我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布. 趋势 本月全国程序员平均工资为13451元,比上个月略涨. 北上广深杭工资趋势 区块链程序员的工资 职能 工资 系统架构师 2 ...

  5. 程序员小白入行区块链的六种方式

    区块链大本营编译战队出品 参与 | Guoxi.波波 全球最大的软件外包服务平台Upwork每个季度都会发布一份"增速最快的二十大开发技能"报告.在2017年第三季度,市场对于区块 ...

  6. 程序员数学基础【五、math库常用函数】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

  7. 给Android程序员的六个建议

    给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...

  8. 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

  9. 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)

    测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...

最新文章

  1. Go 语言编程 — net/http — HTTP 服务端
  2. 邮件被暴力破解邮件网关如何解决
  3. jni string 转换
  4. 阅读代码和修改别人代码的一些技巧以及注意事项
  5. 求最大值及其下标编程总结
  6. php修罗XiunoBBS轻论坛程序源码开源版
  7. win10和win7游戏测试软件,Win10系统和Win7玩游戏哪个更快?评测在这里!
  8. 模拟便于直接存取的索引文件结构_07016.2.0使用Solr7对结构化csv文件建立全文索引...
  9. Vue v-on v-model 组合使用
  10. uni-app多端开发,问题总结
  11. wegame安装包文件MD5校验失败解决方案
  12. 人大金仓V8数据库安装教程及避坑小指南
  13. 分类模型的再考以及随机森林的应用
  14. python爬虫实践-腾讯视频弹幕分析
  15. Spring Boot为什么不需要额外安装Tomcat?
  16. Tegra TK1中文输入法
  17. Python 标准库之 Math 数学函数
  18. 【ACM省赛】第九届河南省程序设计大赛 B 宣传墙
  19. java支持scss_Java的SASS实现?
  20. Python四行代码实现的猜数字小游戏,基于thinker,带GUI界面

热门文章

  1. 二、linux命令(ubuntu)
  2. RabbitMq--3--案例
  3. leetcode-67-二进制求和
  4. Go Channel 详解
  5. C# 获取目录下文件
  6. vue.js插件使用(01) vue-resource
  7. python3下的paramiko 安装
  8. Eclipse 应用的初步认识
  9. stm32上的Lava虚拟机开发进度汇报(3)
  10. 和菜鸟一起学c++之虚函数