接上篇:https://developer.aliyun.com/article/1226834?spm=a2c6h.13148508.setting.18.37c24f0e443j3c
十二、 封装函数传入参数
案例1:当传入参数过多时,应封装为参数类
Java规范不允许函数参数太多,不便于维护也不便于扩展。
现象描述:
建议方案:
案例2:当传入成组参数时,应封装为参数类
既然参数成组出现,就需要封装一个类去描述这种现象。
现象描述:
建议方案:
主要收益:
• 封装过多函数参数为类,使函数更便于扩展和维护;
• 封装成组函数参数为类,使业务概念更明确更清晰。
十三、 尽量用函数替换匿名内部类的实现
Java匿名内部类的优缺点:
• 在匿名内部类(包括Lambda表达式)中可以直接访问外部类的成员,包括类的成员变量、函数的内部变量。正因为可以随意访问外部变量,所以会导致代码边界不清晰。
• 首先推荐用Lambda表达式简化匿名内部类,其次推荐用函数替换复杂的Lambda表达式的实现。
案例1:尽量用函数替换匿名内部类(包括Lambda表达式)的实现
现象描述:
建议方案:
其实,还有一个更简单的办法。在调用函数sendWorkerSettleData(发送作业员结算数据)之前计算开始日期、结束日期,就直接可以用函数auditTaskDAO.statCheckerSettleData(beginDate,endDate)代替匿名内部类实现。
案例2:拆分复杂匿名内部类实现接口为多个函数式接口
如果一个匿名内部类实现的接口几个函数间关联性不大,可以把这个接口拆分为几个函数式接口,便于使用Lambda表达式。
现象描述:
建议方案:
主要收益:
• 定义函数并指定参数,明确规定了匿名内部类的代码边界;
• 利用Lambda表达式简化匿名内部类实现,使代码更简洁。
接下篇:https://developer.aliyun.com/article/1226828?spm=a2c6h.13148508.setting.20.37c24f0e443j3c