打破阶级的相互依存

时间:2019-05-08 09:07:05

标签: design-patterns architecture software-design

我想设计一个从服务中获取一些配置的应用程序。这需要像每天一次一样定期进行。周期性间隔值也存储在配置内部。

我有两个类A和B。A负责同步服务中的配置并将最新配置存储在内存中。 B负责为应用程序内的其他客户端提供服务。任何想要读取价值的客户都将与B联系。B将使用A中存储在内存中的最新配置。

在这里,我正在A内尝试从B获取刷新间隔并定期安排它。这在两个类之间创建了相互依赖性。 B依赖于A来获取最新的缓存配置,而A依赖于B来获取刷新间隔。我不确定如何打破这种相互依存关系。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

提取A和B的接口,使它们彼此依赖。这将使您的代码依赖于抽象,而不是具体的对象。

答案 1 :(得分:0)

“ A”不应访问“ B”,但“ B”或其他管理类可以根据配置更改属性“ A”的默认值,该属性定义高速缓存到期时间(或重新同步时间)和一些规则。