如何处理 OO 应用程序中的横切关注点?使用单例?依赖注入?什么?

2024-02-12

假设我目前正在设计一个应用程序,需要使用全局计时系统(这是一个跨领域的问题)。我需要从应用程序中的基本上任何位置访问来自该全球计时系统的数据,并且我看不到“应用程序的这一部分将需要它,而其他部分则不需要”。

我的问题是..我应该将其设计为一种环境上下文(在本例中为单例),还是应该尝试设计其他方式来适应这种情况?

我当然不认为让我的所有类都必须通过构造函数注入将这个全局计时类传递给它们是正确的。很多时候我必须将引用真正沿着链传递,直到某个类最终需要它。另一方面,从阅读的角度来看,它会让一切变得更加清晰(它清楚地表明我的类的依赖关系是什么)。

人们通常如何处理这个问题?还有其他技术可以帮助解决这个问题吗?也许是AOP?

PS:全球计时系统只是我从目前正在阅读的一本书中得到的一个想法。日志系统是此类问题的另一个很好的例子。

Thanks


正如你所建议的,面向方面编程(AOP) http://en.wikipedia.org/wiki/Aspect-oriented_programming设计时就考虑到了这类事情,所以我当然会检查一下。

虽然构造函数注入在这种情况下看起来确实很麻烦,但使用国际奥委会集装箱 http://martinfowler.com/articles/injection.html可能会稍微减轻你的疼痛。单例似乎确实很符合要求,但由于静态性,它们带来了可测试性问题 - 但您可以通过将其分成两部分来解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 OO 应用程序中的横切关注点?使用单例?依赖注入?什么? 的相关文章

随机推荐