针对应用程序范围的单身人士的非AOP最佳实践

时间:2011-02-16 19:03:37

标签: java

[爪哇]

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

话虽如此,我仍然希望我的代码尽可能干净整洁,并尽可能与最佳实践(非AOP最佳实践!)保持一致。

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

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

...的sooo

我的问题是:什么是最好的(非AOP)设计模式&类的实践:

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

单身人士模式?厂?静态进口?其他?!?!

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

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

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

请注意,您的“单身人士”只是POJO。 IoC Container负责保证一个且只有一个(如果您设置容器控制的生命周期或其他一些)。