java—单例设计模式
2015-07-26 18:13
489 查看
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1、构造方法私有化
2、声明一个本类对象
3、给外部提供一个静态方法获取对象实例
什么时候使用?
1、通过在工具类的设计中使用;
2、当一个类中没有属性;
3、该类作为工具类使用非常频繁。
两种方式:
一、饿汉式
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。
二、懒汉式
1、构造方法私有化
2、声明一个本类对象
3、给外部提供一个静态方法获取对象实例
什么时候使用?
1、通过在工具类的设计中使用;
2、当一个类中没有属性;
3、该类作为工具类使用非常频繁。
两种方式:
一、饿汉式
1 package practice1; //单例模式 public class Test7 { public static void main(String[] args) { Singleton s=Singleton.getInstance(); s.method(); } } class Singleton{ private static Singleton singleton=new Singleton();//定义时就创建对象 private Singleton(){//构造方法私有化 } public static Singleton getInstance(){//给外部提供一个全局访问点,静态方法 return singleton; } public void method(){//测试方法 System.out.println("method"); } }
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。
二、懒汉式
class Singleton2{ private static Singleton2 singleton2=null;//定义时不直接创建 private Singleton2(){}//构造方法私有化 public static Singleton2 getInstance(){ if(singleton2==null){ singleton2=new Singleton2(); } return singleton2; } public void method(){//测试方法 System.out.println("method"); } }
相关文章推荐
- 【Struts2框架】第三节OGNL表达式-OGNL表达式例子2
- java的死锁学习
- 【Struts2框架】第三节OGNL表达式-OGNL表达式例子
- java进阶
- Java新手问题集锦
- Excel导出java实例(有模板)
- 调试JMeter的JAVA sampler
- 记一次在mac上配置Maven 的JAVA_HOME的惨痛经历
- 研究spring原理的心得
- 关于Eclipse(MyEclipse)中一次性批量导入多个项目Project.
- java反射机制,实例
- Java泛型学习笔记
- JavaWeb学习笔记:ServletConfig()和ServletContext()
- java它们的定义jar套餐读Excel(这包括2003和2007)数据,和实例
- 关于启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
- Java的string类为什么是不可变的
- java实现随机生成UUID
- 在spring环境下集成ActiveMQ
- java编程思想——抽象类
- java基础-jdbc——三种方式加载驱动建立连接