Java设计模式之Singleton
使用Java才一年多的时间,虽然这期间也用Java写过几个Android的AP,但是对于高阶部分还是接触的较少。
今天有看到Singleton的Java设计模式,以前没有太专注于这个方面,于是就想把它搞懂。
Singleton模式说白了就是保证在Java应用程序中,一个Class只能有一个实例存在。
这个在我们日常编程中实例还是挺多的,比方说独享的资源,一台机器无论是在什么操作系统上,网络端口都是独享的。也就是说,在同一时刻,我们只能实例化一个Socket连接。延伸的话,我想数据库编程方面应该用很多Singleton模式。
Singleton模式一般有三种形式。
第一种形式:定义一个类,它的构造函数是Private的,它有一个Static的private的该类变量,在类初始化的时候实例化,通过public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton{private Singleton(){}
private static Singleton instance = new Singleton();//私有静态变量
public static Singleton getInstance(){//注意是public方法,这里提供一个供外部访问本class的静态方法,可以直接访问(这个在我们日常Android编程中应该用的很多吧^^)
return instance;
}
}
第二种形式:以一个静态变量做标记,每次getInstance的时候进行检查,是否已经实例化过。
public class Singleton{private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//实例化的时候进行检查,如果instance已存在,那么就不去实例化
if(instance==null){
instance=new Singleton();
}
return instance;
}
}
还有一种形式的概念其实和C/C++全局概念相关,就是定义一个类,它的构造函数是private的,所有方法为static的,这样做的好处就是,所有的方法可以在创建前被其他类调用,这样也就只有在Constructor中实例化一次。
关于更多Java设计模式专题,我们可以去参考http://www.ibm.com/developerworks/cn/java/design/
已有 0 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
- 上海:天会皓闻诚聘资深Java架构师
- 北京:手机之家网站诚聘PHP程序员
- 成都:月薪5千到1万招聘Java开发工程师
- 上海:天会皓闻诚聘CTO技术总监
- 上海:高薪诚聘Python开发人员
以上是 Java设计模式之Singleton 的全部内容, 来源链接: utcz.com/z/392333.html