gpt4 book ai didi

java - 应用程序范围单例的非 AOP 最佳实践

转载 作者:行者123 更新时间:2023-11-30 11:55:21 26 4
gpt4 key购买 nike

[Java]

我有几个实用程序类(LogHelpers、Exception Handlers、CacheHelpers 等)将出现在我的代码中,它们都代表“横切关注点”并且是 AOP 的理想候选者,除了......我不有时间学习 AOP 框架,例如 AspectJ 或 AOP Alliance 或 Google Guice。

话虽如此,我仍然希望我的代码尽可能简洁明了,并尽可能符合最佳实践(非 AOP 最佳实践!)。

我有两个问题可能需要两个解决方案。首先是我有一些只需要静态方法的通用/高度耦合/AOP 候选类;类本身没有任何非静态/实例级方法。诸如 ExceptionHandler.handleException(Exception exc) 之类的东西。

第二个问题是我有一些通用/AOP 候选类确实有方法实例,并且确实需要实例化,但最好作为单例使用,我的应用程序在其中创建一个“全局”实例它们中的一部分,并且在整个其他包和代码库中使用相同的引用。

太...

我的问题是:哪些类的最佳(非 AOP)设计模式和实践是:

(a) 只定义在整个代码库中使用的静态方法;和 (b) 只需要一个将在整个代码库中使用的单个实例?

单例模式?工厂?静态导入?其他?!?!

在此感谢您的任何建议!

最佳答案

Inversion of Control (可能使用支持生命周期管理的 IoC Container library)和接口(interface)的构造函数依赖注入(inject)。

如果必须,您可以使用 Service Locator模式,但我会避免这种情况。

请注意,您的“单例”只是 POJO。 IoC 容器负责确保只有一个(如果您设置了容器控制的生命周期或类似的生命周期)。

关于java - 应用程序范围单例的非 AOP 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com