このケースは、コインバッグの実際の技術的アプリケーションです。
ブロックチェーンコインパッケージをご覧になると、当時、先生がお金を払ってくれて、ずっと考えていました。
仮想通貨コインパックには多くのツールがあるので、それを実現するためにどのテクノロジーを使用していますか。数学[列挙型]の仮想通貨内部ループの実用化について、皆さんにお話しましょう。
テスト言語:[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.コントローラーはデータを受け入れます
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)コインパッケージのアイデアは、親子関係のコレクションでのコード操作を簡素化するために、コインパッケージの制約として列挙を使用することです。
次の内容:【】:【】
プログラマーは高層ビルから始めて、小学校[数学とは]から[離散数学](主にグラフ理論)まで、基本的な数学を持っています。一歩一歩成長して、一緒に働きましょう。