美文网首页
实际使用

实际使用

作者: ttyttytty | 来源:发表于2021-05-13 14:48 被阅读0次

重复的代码片段

1.如校验是否鉴权啦/统计接口耗时啦,考虑使用面向切面编程,预编译方式和运行期动态代理(反射注解),编译或运行慢一点。例如: 注解用在方法上,获取方法名,打日志?????? Android AOP/AspectJ
2.如果是流程,大致相同,部分不同,考虑模板模式/多态
3.部分前置条件,如发送命令前判断设备状态/电量等等,使用责任链模式,
4.接口都一样,就是不同状态,实现不同逻辑,考虑状态模式,白天类/黑夜类

代码中大量的分支if/else

1.策略模式——多态
1.1 表现形式为“接口”&“实现类”
1.2 表现形式为“枚举”+“抽象接口”
1.3 Client类保存具体实现的映射关系

  • 工厂模式
    • 所以使用策略模式时,更好的做法是与工厂模式结合,将不同的策略对象封装到工厂类中,用户只需要传递不同的策略类型,然后从工厂中拿到对应的策略对象即可
  • 查表:有固定顺序的话考虑数组
  • 查表:key-value类似工厂模式MAP保存创建关系 ,或者保存反射的类名

2.异常场景提前卫语句return;值转换

if(i==0)return "male";
if(i==1)return "female";

而不是使用临时变量,最后return:
if(i==0){
sex="male";
}else if(i==1){
sex="female";}
return sex;

3.多分支+一段代码逻辑:syncFile

  • 表现形式为“枚举”+“抽象接口”,Map+函数式接口
Map<String,Function<String,String>>map=new HashMap<>();
 map.put(分支条件,()->{代码})
map.put("1",resouceId->helper.redPay(resouceId));
map.put("2",resouceId->helper.greenPay(resouceId));
map.put("3",resouceId->{return "bulepay";});
client:
public String getResult(String key,String rescourceId){
Function<String,String> result=map.get(key);
return result.apply(rescourceId);
}

多个属性,可选设置

  1. 使用builder构造器模式

力扣设计模式

相关文章

  • 实际使用

    重复的代码片段 1.如校验是否鉴权啦/统计接口耗时啦,考虑使用面向切面编程,预编译方式和运行期动态代理(反射注解)...

  • js 记录 debounce与throttle

    debounce~ 实际使用时可以: or throttle~ 实际使用 如果上来第一次需要触发 可以加个开关变量...

  • webpack实际使用

    treeshaking tree shaking 本质上用于移除js 上下文中未引用代码 使用 ES 2015模块...

  • orthofinder实际使用

    下载目标物种的蛋白质组序列 使用哪个蛋白质组版本 OrthoFinder 使用蛋白质编码基因的氨基酸序列。这通常位...

  • excel的单元格大写金额转换公式-标准版

    代码分析版 实际使用版

  • 2019-01-11day15 personal review

    1、文字说明: 2. 具体实际使用:

  • MVC的实际使用

    这里就不在多说ios关于架构方面的其他问题了,有关MVP、MVVM等的问题请看我的另一篇文章ios面试题目总结。 ...

  • JWT的实际使用

    <<使用jwt来做验证登陆>> 在之前所说的jwt = json web token,是一个开源的标准规范(RFC...

  • 千分位

    示例 知识点整理 一些正则实际使用

  • 20-while循环,累加至100

    因为循环次数是已知的,实际使用时,建议用for循环

网友评论

      本文标题:实际使用

      本文链接:https://www.haomeiwen.com/subject/uhtxjltx.html