构建枚举类(策略模式)

文章介绍了如何利用枚举在项目中实现策略模式,优化业务实体构建。枚举中包含描述信息和具体构建方法,如SOP_IDLIST、SOP_PRODUCTIDLIST等,通过转换方法将不同类型的集合转化为对应的实体对象。同时,注意枚举应提供getter和适当构造器,并根据参数类型定义不同枚举。
摘要由CSDN通过智能技术生成

背景:项目中很多业务需构建实体,此时可以用枚举来实现策略模式构建

目录

一、枚举设定

二、代码参考

三、注意


一、枚举设定

1:建议加入desc

2:设定返回的方法,每一个枚举都可以用此方法,用时方法使用final修饰,同时针对返回同一个实体,方法名可以一致,传入参数为object即可,可向下转为一切类型

二、代码参考

@Getter
@AllArgsConstructor
public enum EmSingleBuilder {
    /*******************sop*****************/
    SOP_IDLIST("根据Sop主键集合构建"){
        public  SopEntity buildSopEntity(Object obj) {
            return SopConvert.INSTANCE.convertAoToEn(
                    new SopEntity().setIncludeIdList((List<String>) obj));
        }

    },

    SOP_PRODUCTIDLIST("根据产品主键集合构建"){
        public  SopEntity buildSopEntity(Object obj) {
            return SopConvert.INSTANCE.convertAoToEn(
                    new SopEntity().setProductIdList((List<String>) obj));
        }

    },

    /*******************sopDetail*****************/
    SOPDETAIL_SOPID("根据SOP主键构建"){
        public SopDetailEntity buildSopDetailEntity(Object obj){
            return SopDetailConvert.INSTANCE.convertAoToEn(
                    new SopDetailEntity().setSopId((String) obj));
        }

    },

    /*******************sopDirectory*****************/
    SOPDIRECTORY_IDLIST("根据SOP主键构建"){
        public SopDirectoryEntity buildSopDirectoryEntity(Object obj){
            return SopDirectoryConvert.INSTANCE.convertAoToEn(
                    new SopDirectoryEntity().setIncludeIdList((List<String>)obj));
        }

    };

    private String desc;

    public   SopEntity buildSopEntity(Object obj){return null;}

    public SopDetailEntity buildSopDetailEntity(Object obj){return null;}
    public SopDirectoryEntity buildSopDirectoryEntity(Object obj){return null;}


}

三、注意

1:枚举需要给get方法以及构造器

2:建议根据传入参数类型来设定不同的枚举,比如参数一个参数,枚举为EmSingleBuilder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值