程序员数学基础【六、枚举 区块链,虚拟币种、币包约束,内环版本】(Java版本)
本案例为币包的实际技术应用:
做区块链币包的可以看看,当年老师付我也是想了很久的。
虚拟币币包的工具有很多,那么他们使用的是什么技术实现的呢。咱们利用就将数学【枚举】的虚拟币内环实际应用给大家讲一讲。
测试使用语言:【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版本)相关推荐
- CSDN日报191105:2019年11月全国程序员工资统计,区块链工程师比算法工资高
CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 2019年11月全国程序员工资统计,区块链工程师比算法工资高 作者:有数可据 我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布 ...
- 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!
在今年315晚会上,品牌连锁餐厅将过期的汉堡包正常提供给消费者食用事件登上热搜,引起大众哗然. 早在2019年,国务院发布<关于深化改革加强食品安全工作的意见>,对于区块链技术的食品安全应 ...
- CSDN技术分享——程序员如何快速上手区块链底层技术?
区块链,应该是这两年来最火的话题.相比去年年末到今年年初,其火热程度虽有所降低,但依旧会有很多人想了解,想探寻其中的奥秘. 令人尴尬的是,真正火起来的不是区块链技术本身,而是数字资产和相关炒作.你跟 ...
- 2019年11月全国程序员工资统计,区块链工程师比算法工资高。
我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布. 趋势 本月全国程序员平均工资为13451元,比上个月略涨. 北上广深杭工资趋势 区块链程序员的工资 职能 工资 系统架构师 2 ...
- 程序员小白入行区块链的六种方式
区块链大本营编译战队出品 参与 | Guoxi.波波 全球最大的软件外包服务平台Upwork每个季度都会发布一份"增速最快的二十大开发技能"报告.在2017年第三季度,市场对于区块 ...
- 程序员数学基础【五、math库常用函数】(Python版本)
测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...
- 给Android程序员的六个建议
给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...
- 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)
测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...
- 程序员数学基础【三、取模运算(取余运算功能重叠部分)】(Python版本)
测试使用语言:[Python] 由于此类语言入门非常容易,哪怕初中生亦可以,并且本科/研究生写论文.做实验多数所用语言都是[Python]故而选择此语言. 代码运行平台:[win10 x64] 代码环 ...
最新文章
- Go 语言编程 — net/http — HTTP 服务端
- 邮件被暴力破解邮件网关如何解决
- jni string 转换
- 阅读代码和修改别人代码的一些技巧以及注意事项
- 求最大值及其下标编程总结
- php修罗XiunoBBS轻论坛程序源码开源版
- win10和win7游戏测试软件,Win10系统和Win7玩游戏哪个更快?评测在这里!
- 模拟便于直接存取的索引文件结构_07016.2.0使用Solr7对结构化csv文件建立全文索引...
- Vue v-on v-model 组合使用
- uni-app多端开发,问题总结
- wegame安装包文件MD5校验失败解决方案
- 人大金仓V8数据库安装教程及避坑小指南
- 分类模型的再考以及随机森林的应用
- python爬虫实践-腾讯视频弹幕分析
- Spring Boot为什么不需要额外安装Tomcat?
- Tegra TK1中文输入法
- Python 标准库之 Math 数学函数
- 【ACM省赛】第九届河南省程序设计大赛 B 宣传墙
- java支持scss_Java的SASS实现?
- Python四行代码实现的猜数字小游戏,基于thinker,带GUI界面