如何避免两个对象之间的交叉引用?

时间:2012-03-21 06:56:24

标签: java oop strategy-pattern cross-reference

我有一个DataAccess类,它有一个接口的引用。界面代表要使用的缓存策略。

我希望缓存策略类似于initalize()方法,它在启动时填充缓存。但是,该方法需要DataAccess类才能访问数据,最后我会得到交叉引用。

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

我可以创建一个调用dataaccess的附加层吗?

其他想法?

1 个答案:

答案 0 :(得分:1)

您应该使用Cache查找类包装DataAccess类,如果它无法从其内部缓存中获取数据,则只访问DataAccess类。就像你提到的那样,这将包含一个额外的层,但是根据你实现它的方式,它可以对应用程序代码透明(例如,通过使用AOP)。