我有一个 DataAccess 类,它有一个接口(interface)的引用。该接口(interface)表示要使用的缓存策略。
我希望缓存策略有类似 initalize() 方法的东西,它可以在启动时填充缓存。但是,该方法随后需要 DataAccess 类才能访问数据,我最终得到了一个交叉引用。
我也不想用 setter 方法“污染”接口(interface),因为并非所有实现都需要它。也最好在 DataAccess 类中没有 setter ,因为我希望所有字段都是最终的。
我可以创建一个调用数据访问的附加层吗?
其他想法?
最佳答案
您应该使用缓存查找类包装 DataAccess 类,该类仅在无法从其内部缓存中获取数据时才访问 DataAccess 类。正如您所提到的,这将包含一个额外的层,但根据您实现它的方式,它可以对应用程序代码透明(例如,通过使用 AOP)。
关于java - 如何避免 2 个对象之间的交叉引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799921/