单例设计模式

单例设计模式:保证一个类在内存中只有一个对象。

模式:模式就是解决一类问题的固定步骤。

23种设计模式:
    1. 单例数据模式
    2.模板设计模式
    3.装饰者设计模式
    4.观察者设计模式
    5.工厂设计模式
         。。。         
饿汉单例设计模式的步骤:
         1.私有化构造函数
         2.声明本类的引用类型变量,并且使用该变量指向本类对象
         3.提供一个公共静态的方法获取本类的对象
 
懒汉单例设计模式的步骤:
         1.私有化构造函数
         2.声明本类的引用类型变量,但是不要创建对象
         3.提供一个公共静态的方法获取本类的对象,获取之前先判断是否已经创建了本类对象,如果创建了,那么直接返回对象即可,如果还没有创建,
              那么先创建本类的对象,然后再返回
推荐使用:饿汉单例设计模式。 因为懒汉单利设计模式会存在线程安全问题,目前还不能保证一个类在内存中只有一个对象
   
   
  1. package com.cn.singleton;
  2. /**
  3. * Author:Liu Zhiyong(QQ:1012421396)
  4. * Version:Version_1
  5. * Date:2016年8月25日21:48:16
  6. * Desc:
  7. 单例设计模式:
  8. 懒汉单例设计模式(线程安全问题解决方案)
  9. 步骤:
  10. 1.私有化构造函数。
  11. 2.声明本类的引用类型变量,但是不要创建对象。
  12. 3.声明一个公共静态的方法获取本类的对象,获取之前先判断是否已经创建了本类的对象了,如果已经创建了就不要在创建直接返回即可,如果还没有创建,那么就先创建本类的引用类型变量,然后再返回。
  13. */
  14. /**
  15. * 懒汉单例设计模式
  16. * @author zhiyong
  17. *
  18. */
  19. class Singleton1{
  20. //2.声明本类的引用类型变量,但是不要创建对象。
  21. private static Singleton1 s;
  22. //1.私有化构造函数。
  23. private Singleton1(){
  24. }
  25. //3.声明一个公共静态的方法获取本类的对象
  26. public static Singleton1 getInstance(){
  27. if(s==null){ //这里加一次判断,效率更高
  28. synchronized ("锁") {
  29. if(s == null){
  30. s = new Singleton1();
  31. }
  32. }
  33. }
  34. return s;
  35. }
  36. }
  37. /**
  38. * 饿汉单例设计模式
  39. * @author zhiyong
  40. *
  41. */
  42. class Singleton2{
  43. //1.私有化构造函数
  44. public Singleton2() {
  45. }
  46. //2.声明本类的引用类型变量,并且使用该变量指向本类对象
  47. private static Singleton2 s = new Singleton2();
  48. //3.提供一个公共静态的方法获取本类的对象
  49. public static Singleton2 getInstance(){
  50. return s;
  51. }
  52. }
  53. public class Demo1 {
  54. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值