我似乎无法用java思考。我想要的是一个函数,它接受两个函数作为参数,并执行其中一个,检查缓存未命中,如果有则执行第二个。如果不重写子类/接口实现中的所有函数定义,我无法弄清楚如何在 java 中执行此操作。
那么,我将如何写类似的东西
def(cacheFun, diskFun){
String astring = cacheFun.call()
if(!isBlank(astring)){
return astring
} else {
return diskFun.call()
}
}
在java中?
我不想要的是一堆匿名类,它们在接口下实现了我想要的功能(至少不是我想的那样)。有许多以不同方式处理缓存的函数。这意味着超类必须为每种缓存方式提供一个函数。
public String getUsingWayOne(){
String retval = WayOneCacheClass.new.execute()
if(retval is not empty){
return retval
} else {
retval = WayOneDiskClass.new.execute()
return retval
}
}
并针对所有不同的缓存方式重复此操作
在java中有解决方法吗?请不要建议缓存库。这个问题的目的不是实际缓存东西,而是学习以“正确”(java)方式编写代码。