我有一个DataAccess类,它有一个接口的引用。界面代表要使用的缓存策略。
我希望缓存策略类似于initalize()方法,它在启动时填充缓存。但是,该方法需要DataAccess类才能访问数据,最后我会得到交叉引用。
我也不想用setter方法“污染”接口,因为并非所有实现都需要它。最好也不要在DataAccess类中设置setter,因为我希望所有字段都是最终字段。
我可以创建一个调用dataaccess的附加层吗?
其他想法?
答案 0 :(得分:1)
您应该使用Cache查找类包装DataAccess类,如果它无法从其内部缓存中获取数据,则只访问DataAccess类。就像你提到的那样,这将包含一个额外的层,但是根据你实现它的方式,它可以对应用程序代码透明(例如,通过使用AOP)。