当前位置: 首页 > news >正文

一种非常巧妙的设计模式

interface ValueSetter<T> {public void set(T entity, Object v);}interface ValueGetter<T> {public Object get(T entity);}public class BaseHelper<T extends BaseEntity> implements Converter {public static final String ID = "id";public static final String PARENT_ID = "parentId";public static final String UUID = "uuid";public static final String DELETED = "deleted";public static final String DISABLED = "disabled";public static final String CREATE_USER = "createUser";public static final String CREATE_TIME = "createTime";public static final String UPDATE_TIME = "updateTime";public static final String UPDATE_USER = "updateUser";public static final String DATA_VERSION = "dataVersion";public static final String ORDER_NUM = "orderNum";public Map<String, ValueGetter<T>> baseGetterMap() {Map<String, ValueGetter<T>> map = new TreeMap<>();map.put(ID, T::getId);map.put(UUID, T::getUuid);map.put(DISABLED, T::getDisabled);map.put(CREATE_USER, T::getCreateUser);map.put(CREATE_TIME, T::getCreateTime);map.put(UPDATE_TIME, T::getUpdateTime);map.put(UPDATE_USER, T::getUpdateUser);map.put(DATA_VERSION, T::getDataVersion);return map;}public Map<String, ValueSetter<T>> baseSetterMap() {Map<String, ValueSetter<T>> map = new TreeMap<>();map.put(ID, (T e, Object v) -> e.setId(toLong(v)));map.put(UUID, (T e, Object v) -> e.setUuid(toString(v)));map.put(DISABLED, (T e, Object v) -> e.setDisabled(toBoolean(v)));map.put(CREATE_USER, (T e, Object v) -> e.setCreateUser(toLong(v)));map.put(CREATE_TIME, (T e, Object v) -> e.setCreateTime(toDate(v)));map.put(UPDATE_TIME, (T e, Object v) -> e.setUpdateTime(toDate(v)));map.put(UPDATE_USER, (T e, Object v) -> e.setUpdateUser(toLong(v)));map.put(DATA_VERSION, (T e, Object v) -> e.setDataVersion(toLong(v)));return map;}public Map<String, Class<?>> baseFieldTypeInfo() {Map<String, Class<?>> map = new TreeMap<>();map.put(ID, Long.class);map.put(UUID, String.class);map.put(DISABLED, Boolean.class);map.put(CREATE_USER, Long.class);map.put(CREATE_TIME, Date.class);map.put(UPDATE_TIME, Date.class);map.put(UPDATE_USER, Long.class);map.put(DATA_VERSION, Long.class);return map;}
}
 1 package tech.abcd.core.entity.helper;
 2 
 3 import java.util.*;
 4 
 5 import org.springframework.stereotype.Component;
 6 
 7 import tech.zqxx.common.helper.entity.BaseEntity;
 8 import tech.zqxx.common.helper.entity.BaseHelper;
 9 import tech.zqxx.common.helper.entity.DomainHelper;
10 import tech.zqxx.common.helper.entity.ValueGetter;
11 import tech.zqxx.common.helper.entity.ValueSetter;
12 import tech.zqxx.core.entity.*;
13 
14 /****
15  * 本代码由生成器生成,请勿修改
16  */
17 @Component
18 public class SysDeptHelper extends BaseHelper<SysDept> implements DomainHelper<SysDept>  {
19 
20     // 字段名常量定义
21     public static final String DEPT_NAME = "deptName";
22     public static final String LEADER = "leader";
23     public static final String DATA_VERSION = "dataVersion";
24     public static final String ORDER_NUM = "orderNum";
25     public static final String UPDATE_USER = "updateUser";
26     public static final String REMARK = "remark";
27     public static final String UPDATE_TIME = "updateTime";
28     public static final String UUID = "uuid";
29     public static final String PARENT_ID = "parentId";
30     public static final String CREATE_TIME = "createTime";
31     public static final String DISABLED = "disabled";
32     public static final String CREATE_USER = "createUser";
33     public static final String ID = "id";
34 
35   
36 
37     @Override
38     public Class<SysDept> getDomainClass() {
39         return SysDept.class;
40     }
41 
42     @Override
43     public SysDept create() {
44         return new SysDept();
45     }
46 
47     @Override
48     public Map<String, ValueGetter<SysDept>> getterMap() {
49         Map<String, ValueGetter<SysDept>> map = new HashMap<>();
50         map.put(DEPT_NAME, SysDept::getDeptName);
51         map.put(LEADER, SysDept::getLeader);
52         map.put(ORDER_NUM, SysDept::getOrderNum);
53         map.put(REMARK, SysDept::getRemark);
54         map.put(PARENT_ID, SysDept::getParentId);
55         map.putAll(baseGetterMap());
56         return Collections.unmodifiableMap(map);
57     }
58 
59     @Override
60     public Map<String, ValueSetter<SysDept>> setterMap() {
61         Map<String, ValueSetter<SysDept>> map = new HashMap<>();
62         map.put(DEPT_NAME, (entity, v) -> entity.setDeptName(toString(v)));
63         map.put(LEADER, (entity, v) -> entity.setLeader(toLong(v)));
64         map.put(ORDER_NUM, (entity, v) -> entity.setOrderNum(toLong(v)));
65         map.put(REMARK, (entity, v) -> entity.setRemark(toString(v)));
66         map.put(PARENT_ID, (entity, v) -> entity.setParentId(toLong(v)));
67         map.putAll(baseSetterMap());
68         return Collections.unmodifiableMap(map);
69     }
70 
71     @Override
72     public Map<String, Class<? extends BaseEntity>> fieldComponentTypeInfo() {
73         Map<String, Class<? extends BaseEntity>> map = new HashMap<>();
74         return Collections.unmodifiableMap(map);
75     }
76 
77     @Override
78     public Map<String, Class<?>> fieldTypeInfo() {
79         Map<String, Class<?>> map = new HashMap<>();
80         
81         map.put(DEPT_NAME, String.class);
82         map.put(LEADER, Long.class);
83         map.put(ORDER_NUM, Long.class);
84         map.put(REMARK, String.class);
85         map.put(PARENT_ID, Long.class);
86         map.putAll(baseFieldTypeInfo());
87         return Collections.unmodifiableMap(map);
88     }
89 
90 }

看的懂的,自然知道,这段代码解决了什么问题,看不懂的,一头雾水。

http://www.jsqmd.com/news/453239/

相关文章:

  • 2026最新防脱特证洗发水代工OEM推荐榜,权威榜单发布 - 十大品牌榜
  • 2026年评价高的银川别墅装修设计公司推荐:银川工装装修设计/银川家装装修设计实力公司推荐 - 行业平台推荐
  • 2026年佛山靠谱的床垫源头工厂推荐,选哪家更合适 - 工业设备
  • 2026年线切割机床厂家实力推荐:江苏三林科技设备有限公司——数控/快走丝/中走丝/慢走丝/精密/大型机床全系供应,适配汽车/航空航天/模具精密制造 - 品牌推荐官
  • 2026年重庆公共空间装修设计公司哪家靠谱,深度解读 - 工业品网
  • 2026年评价高的银川家装装修设计公司推荐:银川全屋装修设计/银川别墅装修设计公司选择指南 - 行业平台推荐
  • 揭秘!苏州市GEO营销获客专业公司的制胜方案,评价高的GEO营销获客公司找哪家精选综合实力TOP企业 - 品牌推荐师
  • 总结2026年广州绿色蔬菜配送靠谱品牌,前十名有谁 - 工业品牌热点
  • 益生菌哪个牌子抗幽门有效?十大益生菌口碑品牌全盘点,幽定妥双效调理肠胃更稳 - 博客万
  • 利益相契,方得久伴
  • 2026年口碑好的环保卫浴品牌推荐,专业卫浴产品与服务企业盘点 - mypinpai
  • 多人环评互评数据难生成?搭贝如何一键自动配置? - 搭贝
  • LangChain组件 vector stores向量存储
  • 2026年选购清水混凝土装饰品牌企业要注意什么?这里有答案 - myqiye
  • 北京插座跳闸维修服务推荐,哪些品牌性价比高? - 工业品牌热点
  • 2026年贵阳平面设计培训品牌学校推荐,靠谱的机构有哪些 - 工业推荐榜
  • 2026年靠谱的银川工装装修设计品牌推荐:银川别墅装修设计/银川现代简约装修设计优质公司推荐 - 行业平台推荐
  • 2026年司法拍卖服务机构口碑哪家好,兴业启航实力获认可 - mypinpai
  • npm切换下载源为国内的镜像源
  • 2026年口碑好的银川家装装修设计公司推荐:银川极简装修设计/银川大平层装修设计本地公司推荐 - 行业平台推荐
  • elasticsearch及ik分词器安装
  • 2026年全国源头编织线厂家年度排名,靠谱品牌推荐 - myqiye
  • 2026西安实验室装修改造厂家五大推荐:实验台通风柜引领科研升级 - 深度智识库
  • Win11专业版系统无法使用磁盘清理的问题
  • 2026年Q1昆明通义推广服务商如何选择与评估 - 2026年企业推荐榜
  • 维生素B12哪个牌子好?2026维生素B12十大品牌排行榜更新,成人营养补充指南 - 博客万
  • 2026年知名的银川网站建设开发品牌推荐:银川电商网站建设/银川响应式网站建设高评分公司推荐 - 行业平台推荐
  • HTML速通 - 教程
  • 2026年河南好用的造纸技术公司排名,济南美信造纸技术有限公司上榜 - 工业推荐榜
  • JumpServer 堡垒机部署与 SSH 公钥接入服务器教程