java - 如何避免 2 个对象之间的交叉引用?

标签 java oop strategy-pattern cross-reference

我有一个 DataAccess 类,它有一个接口(interface)的引用。该接口(interface)表示要使用的缓存策略。

我希望缓存策略有类似 initalize() 方法的东西,它可以在启动时填充缓存。但是,该方法随后需要 DataAccess 类才能访问数据,我最终得到了一个交叉引用。

我也不想用 setter 方法“污染”接口(interface),因为并非所有实现都需要它。也最好在 DataAccess 类中没有 setter ,因为我希望所有字段都是最终的。

我可以创建一个调用数据访问的附加层吗?

其他想法?

最佳答案

您应该使用缓存查找类包装 DataAccess 类,该类仅在无法从其内部缓存中获取数据时才访问 DataAccess 类。正如您所提到的,这将包含一个额外的层,但根据您实现它的方式,它可以对应用程序代码透明(例如,通过使用 AOP)。

关于java - 如何避免 2 个对象之间的交叉引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799921/

相关文章:

python - 奇怪的Python析构函数行为

c++ - 为事件记录系统设计(递归)记录对象

java - Java,编译错误?

java - 子对象的 REST URL 概念

c++ - 在 C++ 中,我可以防止派生类被 friend 以外的类实例化吗?

asp.net - 遍历策略设计模式

design-patterns - 使用策略模式的好处在哪里?

java - 策略模式和上下文类

java - 我们是否需要在Spring云合约中 stub 其他微服务

Java 变量的作用域