Java创建者模式(一)——单例计划模式(饿汉式、懒汉式、枚举式 | 完成详 ...

打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

单例计划模式

提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建本身的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不必要实例化该类的对象。
4.1.1 单例模式的布局

单例模式的重要有以下脚色:


  • 单例类。只能创建一个实例的类,即只能创建一个对象。
  • 访问类(也就是测试类),使用单列类
4.1.2 单例模式的实现

  1. 单例设计模式分类两种:
  2. ​        饿汉式:类加载就会导致该单实例对象被创建       
  3. ​        懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建
复制代码
4.1.2.1 饿汉式-静态变量方式

饿汉式,方式1----静态变量方式
该方式在成员位置声明Singleton范例的静态变量,并创建Singleton类的对象instance。instance对象是随着类的加载而创建的。如果该对象充足大的话,而一直没有使用就会造成内存的浪费。
  1. //饿汉式,方式1----静态变量方式
  2. public class SingLeton {
  3.    
  4.     // 1.私有构造方法,让外界不能创建该类的对象。
  5.     private SingLeton() {
  6.    }
  7.     // 2.在本类中的成员位置创建本类的对象
  8.     // 此处的static是根据3.中的方法是静态方法设置的
  9.     private static SingLeton instance = new SingLeton();
  10.     // 3.提供一个公共的访问方式,让外界获取该对象,所以用static
  11.     public static SingLeton getInstance(){
  12.    
  13.         return instance ;
  14.     }
  15. }
  16. ===========================================================
  17.   public class Test {
  18.    
  19.     public static void main(String[] args) {
  20.    
  21.         // 创建SingLeton类的对象
  22.         SingLeton instance1 = SingLeton.getInstance();
  23.         SingLeton instance2 = SingLeton.getInstance();
  24.         // 判断获取的是否是同一个对象
  25.         boolean b = instance1 == instance2;
  26.         System.out.println(b);//true,说明创建了一个对象
  27.     }
  28. }
复制代码
4.1.2.2 饿汉式-静态代码块方式

饿汉式,方式1----静态代码块方式
该方式在成员位置声明Singleton范例的静态变量,而对象的创建是在静态代码块中,也是对着类的加载而创建。所以和饿汉式的方式1根本上一样,固然该方式也存在内存浪费问题。
  1. //饿汉式----静态代码块方式
  2. public class SingLeton {
  3.    
  4.     // 1.私有构造方法,不让外界创捷该类的对象
  5.     private SingLeton() {
  6.    
  7.     }
  8.     // 2.声明SingLeton类型的变量
  9.     private static SingLeton instace;//null
  10.     // 3.静态代码块中进行赋值
  11.     static {
  12.    
  13.         instace = new SingLeton();
  14.     }
  15.     // 4.对外提供获取该类对象的方法
  16.     public static SingLeton getInstance(){
  17.    
  18.         return instace;
  19.     }
  20. }
  21. ==========
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表