A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 17721165644 中级黑马   /  2016-9-23 22:55  /  1077 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

             好友搜狗百科说:通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
特点:对实例个数的控制并节约系统资源
实现方式有三种:
1.     饿汉式
class Singleton{
    private Singleton singleton = new Singleton();
//来不及说了,先上车,哦不,先开吃
   private Singleton(){};
  //私有构造函数防止那些不怀好意的人自己拿;
  public  static  Singleton getInstance(){
//能给的只有这个了;
       return singleton;
  }
}
直接创建实例浪费了空间,但节约了时间
2.    懒汉式:
class Singleton{
    private Singleton singleton;
//先睡会,一会再说
   private Singleton(){};
  //私有构造函数防止那些不怀好意的人自己拿;
  public synchronized static  Singleton getInstance(){
//好好好,给你还不行;synchronized 线程同步
if(singleton == null)
singleton = new Singleton();
return singleton;
  }
}
需要时创建实例,节约了空间,但浪费了时间;
3.    第三种方式(静态常量式)
class Singleton{
    public static final Singleton singleton = new  Singleton();
//想要直接拿,别客气;哥是那个始终如一、直来直去的美男子。
   private Singleton(){};
  //私有构造函数防止那些不怀好意的人自己拿;
}
直接创建实例浪费了空间,但节约了时间

1 个回复

倒序浏览
啊啊啊,好困啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马