需要对单例实例进行静态引用,但实例本身应该使用实例变量,就像常规类一样.
原因是单例实例毕竟是一个对象,所以通常的好设计原则仍然适用于它的类.
此外,今天它是一个单例,但明天它可能是一个ThreadLocal,或者没有任何实例创建限制.如果以通常的方式设计类,那么这些架构选择之间的变化是非常低的.如果使用静态字段,则此类更改将需要更多维护工作才能使字段成为非静态字段.
您可以避免使用静态变量并使用Enum:
public enum MySingleton {
INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)
你可以访问这个单身人士MySingleton.INSTANCE.
枚举是线程安全的,通过Enum实现Singleton可确保您的单例即使在多线程环境中也只有一个实例.
| 归档时间: |
|
| 查看次数: |
20483 次 |
| 最近记录: |