单例模式
2013-11-15 16:37
225 查看
更多文章请进入:我的开源网
单例模式:是通过将类的无参构造方法设置成私有的,然后不提供任何有参的构造方法,对像由类的内部实例化,通过一个静态的方法提供给外部调用端使用,外部使用时只要通过类.静态方法就可以获得对象了。
实现方法一:
package com.cjh.demo;
/**
* 单例模式 方式一
* @author cjh
*
*/
public class Singleton {
/**
* 对象由自己内部new出来
*/
private static Singleton singleton = new Singleton();
/**
* 使用private的无参构造方法,这样就不能在外部new出对象了
*/
private Singleton(){
}
/**
* 通过一个静态的方法提供对象的实例,因为静态方法是可以通过类.方法调用的
* @return
*/
public static Singleton getInstance(){
return singleton;
}
/**
* 对象的方法,需要通过对象.方法调用
*/
public void aboutUS(){
System.out.println("我是一个单例模式的方法!");
}
}
实现方式二:
package com.cjh.demo2;
/**
* 单例模式 方式二
* @author cjh
*
*/
public class Singleton2 {
/**
* 对象引用
*/
private static Singleton2 singleton=null;
/**
* 使用private的无参构造方法,这样就不能在外部new出对象了
*/
private Singleton2(){
}
/**
* 通过一个静态的方法提供对象的实例,因为静态方法是可以通过类.方法调用的
* @return
*/
public static Singleton2 getInstance(){
if(null==singleton){
singleton= new Singleton2();
}
return singleton;
}
/**
* 对象的方法,需要通过对象.方法调用
*/
public void aboutUS(){
System.out.println("我是一个单例模式的方法!");
}
}
单例模式:是通过将类的无参构造方法设置成私有的,然后不提供任何有参的构造方法,对像由类的内部实例化,通过一个静态的方法提供给外部调用端使用,外部使用时只要通过类.静态方法就可以获得对象了。
实现方法一:
package com.cjh.demo;
/**
* 单例模式 方式一
* @author cjh
*
*/
public class Singleton {
/**
* 对象由自己内部new出来
*/
private static Singleton singleton = new Singleton();
/**
* 使用private的无参构造方法,这样就不能在外部new出对象了
*/
private Singleton(){
}
/**
* 通过一个静态的方法提供对象的实例,因为静态方法是可以通过类.方法调用的
* @return
*/
public static Singleton getInstance(){
return singleton;
}
/**
* 对象的方法,需要通过对象.方法调用
*/
public void aboutUS(){
System.out.println("我是一个单例模式的方法!");
}
}
实现方式二:
package com.cjh.demo2;
/**
* 单例模式 方式二
* @author cjh
*
*/
public class Singleton2 {
/**
* 对象引用
*/
private static Singleton2 singleton=null;
/**
* 使用private的无参构造方法,这样就不能在外部new出对象了
*/
private Singleton2(){
}
/**
* 通过一个静态的方法提供对象的实例,因为静态方法是可以通过类.方法调用的
* @return
*/
public static Singleton2 getInstance(){
if(null==singleton){
singleton= new Singleton2();
}
return singleton;
}
/**
* 对象的方法,需要通过对象.方法调用
*/
public void aboutUS(){
System.out.println("我是一个单例模式的方法!");
}
}
相关文章推荐
- 转 Using $.ajaxPrefilter() To Configure AJAX Requests In jQuery 1.5
- EXCEL使用宏破解工作表保护密码
- Excel 利用日期控件输入时间
- 解决每次打开Word、Excel等都要重…
- Excel 公式提取文件名
- FileSystemObject的方法和属性
- VBA 获取和设置(文件和文件夹属性…
- VBA 检查文件或文件名是否存在
- VBA ADO连接语法及常用参数
- 算法系列15天速成 第十一天 树操作(上)
- VBA-循环赋值CheckBox
- VBA数据库中多表导出合并另存
- VBA 利用Wscript.Shell打開記事本 …
- VBA檢查文件夾里是否存在指定文件…
- TransferSpreadsheet的语法:
- OpenCV中的Ptr解析
- win7怎么开启特定端口让其他机器访问
- 删除目录
- 安卓中常用的位图操作
- 期中考