我目前正在一个方法中定义一个功能来帮助实现两个目标:
示例(仅供说明):
"ComIPduCancellationSupport"
在我的情况下,Function方法有点复杂,涵盖了我在if块中检查的特定业务案例。
是否有针对此建议的标准设计模式或反模式?我特意寻找的答案不仅仅是个人偏好。
===
汇总结果:
Pro:封装,可读性以及对范围内最终/有效最终变量的访问。
Con's:拥有太多或太复杂的函数可能会产生代码易读性问题。
答案 0 :(得分:1)
Function<T,R>
的使用是一种代表本地方法的模式 - 这是Java中缺少的一种语言特性,但存在于其他编程语言中。
使用此模式绝对没有错,特别是如果您计划在同一方法实现中多次重复使用相同的验证逻辑。
与私有方法不同,本地函数允许您隐式捕获param1
和param2
,以备不时之需:
final Function<String, Boolean> isValidString = parm -> parm.equals(param1);
// ^
// |
// Implicitly captured param1 ---------------------------------------+
注意:由于您的函数返回Boolean
,因此更合适的界面为Predicate<String>
:
final Predicate<String> isValidString = parm -> parm.equals("Test") || parm.equals("Test2");
...
if (parm1 != null && isValidString.test(parm)) {
...
}