Java 单例Singleton
来源:互联网 发布:淘宝店可以转让吗 编辑:程序博客网 时间:2024/06/06 01:33
在开发项目中,我们常用的单例模式是饿汉式和饱汉式,对表态内部类Singleton,虽然能够起到一定的延迟与线程安全,但是我觉得写这样写不是很好,因为在我们大多数开发过程 中,在一个类中放的是自己的一些属性与方法。加一个表态类部类在里不舒服。对于单例的最好实现是用单元线枚举类型,自己不用写private 构造(),用的时候与其他地方没有差别,直接都是类.instance.方法
demo:
package lml.base.singleton;
public enum Singleton {
instance;
public void operation(){
System.out.println("sfd");
}
}
调用:Singleton.instance.operation();就可以了,挺方便的吧!
看到能用Enum类型来解决这个问题,太爽了,在Java 1.5版本后,只需要编写一个包含单个的元素的枚举类型。这种方法提供了无偿的序列化机制,绝对防止了多次实例化。单元素的枚举类型是实现Singleton的最佳方法。
Enum的一些性质
1.使用构造函数
虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。
public enum Color {
Red("This is Red"),
Green("This is Green"),
Blue("This is Blue");
private String desc;
Color(String desc){
this.desc = desc;
}
public String getDesc(){
return this.desc;
}
}
要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。
2.实现特定的接口
我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。
3.定义枚举值自己的方法。
我们还可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。
- public enum Color {
- Red {
- public String toString(){
- return "Color.Red";
- }
- },
- Green {
- public String toString(){
- return "Color.Green";
- }
- },
- Blue{
- public String toString(){
- return "Color.Blue";
- }
- };
- }
- Java 单例Singleton
- [Java] Singleton 单例模式
- java Singleton 单例模式
- java单例模式(Singleton)
- java实现单例 singleton
- Java单例模式Singleton
- Java Singleton 单例模式
- [java]单例模式Singleton
- java 单例模式 (Singleton)
- Java Singleton 单例模式
- Java单例模式(singleton)
- Java单例模式(Singleton)
- Java singleton单例模式
- java Singleton单例模式
- java单例模式 Singleton
- Java Singleton单例模式
- java singleton单例模式
- Java singleton(单例模式)
- struts2 Intercept 实现原理
- 看日本人怎么玩twitter
- Java中常用的加密方法(JDK)
- VC获取数据库ADO错误消息
- 行颜色交替
- Java 单例Singleton
- 第六节:Quzrtz JobStore
- 大学毕业11周年聚会。返回
- Android数字签名
- VC获取Com错误消息
- 遇到问题快速解决才是王道,查找问题的原因可以后续做
- 软件的快速开发
- sscanf&&printf
- radgrid 导入excel