关于javaBean的拓展使用

关于javaBean很多时候javaBean只是用来对应数据库字段,但是这样做还是不实用,而且也不是很符合DDD的思路,其实很多时候 我们都被固定的MVC模式限制了想法,其实按照领域驱动设计的思维,一个领域对象应该包含领域的属性和方法。不单纯的作为一个值对象存在。

在实际的业务编程中javaBean可以做一些适当的改写来提供更多实际的功能

下面给出一个发送微信订阅消息的javaBean的例子

1、在javaBean中定义了属于模板的枚举状态,把枚举状态归属于javaBean本身比单独放在其他包下意图更加明确

2、改变setStatus() 的赋值行为,在父类DTO中存入status对应的中文解释,方便视图层展示。


/**
 * @author
 * @description 微信模板消息
 * @date 2020-01-01 10:57
 */
public class ShopWxtemplateMsg extends EntityDTO {
    @Extend
    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    private Integer id;
    /**
     * 编码
     */
    private Integer code;


    /**
     * 模板名称
     */
    private String name;


    /**
     * 模板id
     */
    private String uuid;


    /**
     * 模板状态1,启用,2禁用
     */
    private Integer status;


    /**
     * 模板备注
     */
    private String remark;


    /**
     * 所属公司ID
     */
    private String companyId;


    public enum STATUS {

        ENABLE("启用", 1),

        DISABLE("禁用", 2);

        private STATUS(String name, int code) {
            this.name = name;
            this.code = code;
        }

        private String name;
        private Integer code;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Integer getCode() {
            return code;
        }

        public void setCode(Integer code) {
            this.code = code;
        }
    }

	public void buildDicMap(Object value) {
		if (value != null) {
			STATUS[] statusArray = STATUS.values();
			for (STATUS s : statusArray) {
				if (s.getCode().equals(value)) {
					getDicMap().put("status", s.getName());
				}
			}
		}
	}

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }


    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        buildDicMap(status);
        this.status = status;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }


    public String getCompanyId() {
        return companyId;
    }

    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }


}

/**
 * bean对象的基类
 * 
 * @author JIANGYOUYAO
 * @email 935090232@qq.com
 * @date 2017年11月30日
 */
public class EntityDTO  implements Serializable{

	@Extend
	private static final long serialVersionUID = 1L;

	private String createBy;

	private Date createTime;

	private String updateBy;

	private Date updateTime;

	private HashMap<String, Object> dicMap = new HashMap<>();



	public HashMap<String, Object> getDicMap() {
		return dicMap;
	}

	public void setDicMap(HashMap<String, Object> dicMap) {
		this.dicMap = dicMap;
	}

	public String getCreateBy() {
		return createBy;
	}

	public void setCreateBy(String createBy) {
		this.createBy = createBy;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getUpdateBy() {
		return updateBy;
	}

	public void setUpdateBy(String updateBy) {
		this.updateBy = updateBy;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	@Override
	public String toString() {
		String objMsg = "[" + this.getClass().getSimpleName() + "]=" + JSONObject.fromObject(this).toString();
		return objMsg;
	}

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值