在java开发过程中,有很多同学,喜欢把一些常量写枚举类,于是代码里充斥了各种如下的枚举类:
public enum ShipOrderEnum implements IEnum {
/**
* 主表区域
*/
BILL_TYPE("发货单", "BILL_TYPE", "", "6c4db816003911ea8eba73973c5f9d29"),
SOURCE_BILL_TYPE("来源单据类型", "SOURCE_BILL_TYPE", "", "1dc36afdffcf11e98eba6df808af9ab8"),
BILL_STATUS("生效", "BILL_STATUS", "", "3433acad004011ea8ebaef817a4fb296"),
BILL_STATUS_CLOSE("关闭", "BILL_STATUS", "", "377ac160004011ea8ebab3a03decbd60"),
COMPANY("公司", "COMPANY", "CG_COMPANY", ""),
RECEIVE_ADDRESS("收货地址", "RECEIVE_ADDRESS", "CG_RECEIPT_ADDRESS_TITLE", "0f756841ff8011e98eba2d193701d607"),
REC_ADDRESS_DETAIL("收货详细地址", "REC_ADDRESS_DETAIL", "CG_ADDRESS_DETAIL", ""),
SUPPLIER("发货方", "SUPPLIER", "CG_SUPPLIER_TITLE", "36b59270fe3d11e9afbcfd5832a999da"),
SUPPLIER_USER("发货用户", "SUPPLIER_USER", "CG_SUPPLIER_USER", ""),
NEED_CONFIRM("否", "NEED_CONFIRM", "CG_CONFIRM_NEED", "6b8ff0809ebe11e88b7219c3aed96e32"),
NOTE("备注", "NOTE", "CG_NOTE", ""),
SUB_ORDER_OF_SUPPLIER("供应商子订单编号", "SUB_ORDER_OF_SUPPLIER", "", ""),
SUB_ORDER_OF_MALL("商城子订单编号", "SUB_ORDER_OF_MALL", "", ""),
AMOUNT("发货金额", "AMOUNT", "AMOUNT", "6e589eb2dd9f11e8b5a69590a14a4e34"),
BUSINESS_TYPE("业务类型", "BUSINESS_TYPE", "CG_BUSINESS_TYPE", ""),
E_ORDER("电商订单", "E_ORDER", "CG_EB", ""),
/**
* 子表区域
*/
ROW_NUM("行号", "ROW_NUM", "", ""),
LINE_SOURCE("来源类型", "LINE_SOURCE", "", "1dc36afdffcf11e98eba6df808af9ab8"),
SOURCE_PO("来源订单", "SOURCE_PO", "", "82f60743004011ea8ebaa77a9461678d"),
LINE_TPYE("明细类型", "LINE_TPYE", "CG_LINE_TPYE", ""),
MATERIAL_CODE("物料编码", "MATERIAL_CODE", "CG_MATERIAL_CODE_TITLE", "8dd2ee63fefe11e98eba99b2c3325608"),
MATERIAL_CLASS("采购类别", "MATERIAL_CLASS", "CG_CLASS", ""),
MATERIAL_NAME("采购内容", "MATERIAL_NAME", "CG_MATERIAL_NAME", ""),
MATERIAL_SPEC("规格型号", "MATERIAL_SPEC", "CG_MATERIAL_SPEC", ""),
UNIT("计量单位", "UNIT", "CG_UNIT", ""),
SHIP_QUANTITY("发货数量", "SHIP_QUANTITY", "", ""),
LINE_NOTE("备注", "LINE_NOTE", "CG_LINE_NOTE", ""),
PRICE_WO_TAX("不含税单价", "PRICE_WO_TAX", "CG_PRICE_WO_TAX", ""),
PRICE_WI_TAX("含税单价", "PRICE_WI_TAX", "CG_PRICE_WI_TAX", ""),
TAX_CODE("税率编码", "TAX_CODE", "CG_TAX_CODE", ""),
TAX_RATE("税率", "TAX_RATE", "CG_TAX_RATE", ""),
AMOUNT_WO_TAX("不含税金额", "AMOUNT_WO_TAX", "CG_AMOUNT_WO_TAX", ""),
AMOUNT_WI_TAX("含税金额", "AMOUNT_WI_TAX", "CG_AMOUNT_WI_TAX", ""),
TAX_AMOUNT("税额", "TAX_AMOUNT", "CG_TAX_AMOUNT", ""),
QUAN_EXCECUTED("已执行数量", "QUAN_EXCECUTED", "CG_QUAN_EXCECUTED", ""),
QUAN_UNEXCECUTED("未执行数量", "QUAN_UNEXCECUTED", "CG_QUAN_UNEXCECU", ""),
QUAN_RECEIVED("已收货数量", "QUAN_RECEIVED", "CG_QUAN_RECEIVED", ""),
LINE_STATUS("状态", "LINE_STATUS", "CG_LINE_STATUS", ""),
CG_SETTLE_TYPE("结算类型", "CG_SETTLE_TYPE", "CG_SETTLE_TYPE", ""),
CG_STATE_SPONSOR("对账发起方", "CG_STATE_SPONSOR", "CG_STATE_SPONSOR", ""),
LINE_DETAIL("详情", "LINE_DETAIL", "", ""),
MATERIAL_PIC("图片", "MATERIAL_PIC", "CG_ATTACHMENT", ""),
CG_GOODS_ID("电商商品编码", "CG_GOODS_ID", "CG_GOODS_ID", ""),
CG_GOODS_CODE("商品编码", "CG_GOODS_CODE", "CG_COMMODITY_CODE", ""),
/**
* 退货单
*/
RETURN_TYPE("返件方式","RETURN_TYPE","RETURN_TYPE",""),
SO_NUMBER("货运单号","SO_NUMBER","SO_NUMBER",""),
DELIVERY_COMPANY("发货公司","DELIVERY_COMPANY","DELIVERY_COMPANY",""),
FREIGHT_COST("派件运费","FREIGHT_COST","FREIGHT_COST",""),
RETURN_TIME("运回时间","RETURN_TIME","RETURN_TIME",""),
EB("电商订单","EB","EB",""),
SERVICE_TYPE("服务类型", "SERVICE_TYPE", "SERVICE_TYPE", ""),
CG_EMALL_RETURN_NO("商城退货编号","CG_EMALL_RETURN_NO","CG_EMALL_RETURN_NO",""),
PLATFORM_RETURN_NO("平台退货单编号","HUBAFSSN","HUBAFSSN",""),
SOURCED_PO_LINE("来源收货明细", "SOURCED_PO_LINE", "SOURCED_PO_LINE", ""),
/**
* 接收单
*/
CG_EB_NO("商城订单号", "CG_EB_NO", "CG_EB_NO", ""),
CG_EB("电商订单", "CG_EB", "CG_EB", ""),
SOURCE_SO_LINE("来源接收明细", "SOURCE_SO_LINE", "SOURCE_SO_LINE", ""),
;
private String title;
private String column;
private String cg_column;
private String id;
ShipOrderEnum(String title, String column, String cg_column, String id){
this.title = title;
this.column = column;
this.cg_column = cg_column;
this.id = id;
}
@Override
public String getTitle() {
return title;
}
public String getColumn() {
return column;
}
public String getCg_column() {
return cg_column;
}
public String getId() {
return id;
}
public String gerCurrencyId(){
return cg_column + ShipOrderConstant.CURRENCY_ID;
}
由于开发人员可能有多个人开发相似的功能,于是重复的枚举值充斥在各种类里。还是美其名曰我声明了枚举值啊。在我看来,上面的枚举类就是死的,贫血的枚举类,难道还有活的,充血的枚举类吗?请看下文:
如果了解设计模式的人员,就知道这里实现了两种模式:单例+策略:枚举类是单例的,方法是每个枚举类的行为。但是这种方式有一个缺陷,只能有一个抽象方法,但是已经满足策略模式。对于想实现策略模式是另一种更好的选择:可以减少大量的策略类,不用写策略模式单例的入口了
1138

被折叠的 条评论
为什么被折叠?



