如何实现缓存属性??

dnawujun 2019-08-05 09:49:53
比如有个类,有3个double的属性,a,b,c
其中a,b是可读写的,c=func(a,b),func是个耗时的计算过程
如何编码使得当a或b改变时,让c知道自己需要重新计算值了,
但不是立刻计算,仅在客户首次请求c时计算,后面如果
a,b不变时,每次请求c都返回缓存的值
...全文
97 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2019-08-06
  • 打赏
  • 举报
回复
java为啥要搞getter/setter方法,有一部分原因就是为了应付你这种场景的,你可以在c属性的getter方法里做相关处理即可,大概就是楼上说的 如果不想破坏这个类的功能性或者还有其他需求,可以考虑弄个代理类/装饰类来做缓存的逻辑,当然这个并不是必须的,没有一定需求的
faith.huan 2019-08-05
  • 打赏
  • 举报
回复
加个map<Sting,Double> 变量,每次获取c的时候,判断有没有Sting.valueOf(a)+“_”Sting.valueOf(b)这个key,如果有就返回key对应的value,没有就通过fumc(a,b)计算下,放入map,再返回

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧