单例设计模式的一点心得
2014-08-13 15:53
155 查看
解决的问题:保证内存中只有一个对像(比如多个程序使用同一个配置信息);
如 何 实现: 1、 不允许其它程序用new 创建该类对象
2、 在该类创建一个本类实例
3、 对外提值一个方法让其它程序获取该对象
步骤: 1、 私有化该类构造函数;
2、 通过new在本类中创建一个静态本类对象
3、 定义一个公有的、静态的方法,将创建的对象返回(一般为getInstance())
饿汉式(开发时使用): 一上来就初始化一个实例
懒汉式(面试): 需要的时候再创建实例(延时加载),但在多线程时无法证对象的唯一性
如 何 实现: 1、 不允许其它程序用new 创建该类对象
2、 在该类创建一个本类实例
3、 对外提值一个方法让其它程序获取该对象
步骤: 1、 私有化该类构造函数;
2、 通过new在本类中创建一个静态本类对象
3、 定义一个公有的、静态的方法,将创建的对象返回(一般为getInstance())
饿汉式(开发时使用): 一上来就初始化一个实例
懒汉式(面试): 需要的时候再创建实例(延时加载),但在多线程时无法证对象的唯一性
class Single{ //饿汉模式 private Single(){} //这样就不能在外面New了 private static Single s = new Single(); //饿汉就自己new一个吧 public static Single getInstance(){ //静态方法返回自己生产的那个对象,不过不管调用只能返回同一个哦~~ return s; } void print(){ System.out.println("Hello World!"); } } class Single2{ private Single2(){} private static Single2 s2 = null; //懒汉模式与饿汉模式的区别就在这,需要了我再去new public static Single2 getInstance(){ if(s2 == null){ s2 = new Single2(); } return s2; } } public class SingleDemo{ public static void main(String[] args){ Single s = Single.getInstance(); s.print(); //Single s = new Single(); //System.out.println("Hello World!"); } }
相关文章推荐
- 关于设计模式一点使用心得
- 单例设计模式的一点心得
- 学习设计模式的一点心得
- 读EJB(Enterprise Java Bean)设计模式后的心得和体会
- 谈谈mvp for asp.net模式设计的一点感想
- JAVA 23设计模式一点就通
- MySql管理的一点心得&MYSQL命令行模式
- 设计模式学习笔记1:对设计模式学习的一点想法兼谈Facade模式
- 设计模式心得笔记--简单工厂
- 关于设计模式的一点感想
- 读《大话设计模式》和《head first 设计模式》心得
- 关于设计模式的一点想法
- HeadFirst 设计模式 橡皮鸭子例子心得体会
- 请教新设计的数据库组建, 关于跨数据库的一点心得, 大家一起讨论一下
- 请教新设计的数据库组建, 关于跨数据库的一点心得, 大家一起讨论一下(二)
- 关于对设计模式的一点认识
- 学习设计模式的一些心得
- JAVA 23设计模式一点就通
- 设计模式的一点小小想法
- 设计模式一点思索