Java-这个生成memcache key值的类该如何抽象?

发布于 2017-02-11 07:14:43 字数 738 浏览 1217 评论 1

public class CacheHelper {
public String getPrefix() {
return "data_" + this.getClass().getSimpleName();
}
}
public class TipCacheHelper extends CacheHelper {
/* getTipByUserId方法的缓存过期时间*/
public static final long getTipByUserIdKeyExpires = 1L;
/* getTipByUserId缓存key */
public String getTipByUserIdKey(int userId) {
return getPrefix() + "getTipByUserId" + userId;
}

public static final long getTipByOtherKeyExpires = 1L;

public String getTipByOtherKey(int userId) {
return getPrefix() + "_getTipByUserId_" + userId;
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-03-16 07:39:16

你的每个需要缓存的类都有userId这个数据吗? 不知道你的业务类如何设计。一个原则,就是KISS(Keep It Simple and Stupid). 不知道为什么你需要两个方法(getTipByOtherKey, getTipByUserId)来生成key。也许你可以像这么做:

//如果有必要,也可以做成接口
public abstract class CachableObject {
public String getKey() {
StringBuffer sb = new StringBuffer();
sb.append("data_").append(getClass().getSimpleName());
sb.append("_").append(getUserId());
return sb.toString();
}
public abstract int getUserId();
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文