2011-02-16 44 views
2

【JAVA]非AOP最佳实践应用范围的单身

我将出现在所有我的代码(LogHelpers,异常处理程序,CacheHelpers等)都表示“跨领域几个实用程序类关注“,并且将成为AOP的理想候选人,除非...我没有时间学习AspectJ或AOP联盟或Google Guice等AOP框架。

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

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

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

的sooo ...

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

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

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

感谢您的任何建议!

回答

1

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

如果你不得不使用Service Locator模式,但我会避免这种情况。

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

+0

谢谢!我今晚会检查IoC。 IoC与依赖注入相同吗? – Eugie 2011-02-16 20:16:15