HarmonyOS 一个列表有超过10种以上的item类型,有什么好的分发处理手段吗

HarmonyOS
2024-12-18 15:24:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以尝试表驱动的方法:对于逻辑表达模式固定的 if…else 代码,可以通过某种映射关系,将逻辑表达式用表格的方式表示;再使用表格查找的方式,找到某个输入所对应的处理函数,使用这个处理函数进行运算。

适用场景逻辑表达模式固定的 if…else

实现与示例

if (param.equals(value1)) {
  doAction1(someParams);
} else if (param.equals(value2)) {
  doAction2(someParams);
} else if (param.equals(value3)) {
  doAction3(someParams);
}
// ...
可重构为

Map<?, Function<?> action> actionMappings = new HashMap<>(); // 这里泛型 ? 是为方便演示,实际可替换为你需要的类型

// When init
actionMappings.put(value1, (someParams) -> { doAction1(someParams)});
actionMappings.put(value2, (someParams) -> { doAction2(someParams)});
actionMappings.put(value3, (someParams) -> { doAction3(someParams)});

// 省略 null 判断
actionMappings.get(param).apply(someParams);
分享
微博
QQ
微信
回复
2024-12-18 17:40:15
相关问题
Listitem点击变色什么方法
3530浏览 • 1回复 待解决
关于索引一个问题
3577浏览 • 1回复 待解决
mysql一个问题
3211浏览 • 1回复 待解决
数据库一个设计问题?
3213浏览 • 1回复 待解决
一个mysql表插入截断问题
3263浏览 • 1回复 待解决
页面截图功能,什么方法?
1883浏览 • 2回复 待解决
屏幕旋转计算,什么方案?
2400浏览 • 2回复 待解决
一个更新操作必要用到事务
2826浏览 • 1回复 待解决
har和hsp转换,方案
1838浏览 • 1回复 待解决