zoukankan      html  css  js  c++  java
  • 单例的设计模式

      在程序设计中,有一个非常有意思的驳论:时间与空间。在程序开发的过程中,往往要选择是以时间换取空间,还是以空间换取时间。

      单例的设计模式解决的问题:使得一个类只能够创建一个对象。

     1 // 饿汉式单例:以空间换时间
     2 class Singleton1 {
     3     
     4     //1) 不能在外部随意创建对象,把构造器私有化
     5     private Singleton1() {
     6     }
     7     
     8     //2) 不能在外部创建对象, 只能在内部创建对象, 声明一个私有的静态的指向本类对象的引用变量.
     9     private static Singleton1 only = new Singleton1(); 
    10     
    11     //3) 因为对象私有化了,所以只能通过公共的静态方法获取这个唯一的对象
    12     public static Singleton1 getInstance() {
    13         return only;
    14     }
    15     
    16 }
    17 
    18 // 懒汉式单例(可能存在线程安全问题的):以时间换空间
    19 class Singleton2 {
    20     
    21     //1) 不能在外部随意创建对象,把构造器私有化
    22     private Singleton2() {
    23     }
    24     
    25     //2) 不能在外部创建对象, 只能在内部创建对象, 声明一个私有的静态的指向本类对象的引用变量.
    26     private static Singleton2 only;
    27     
    28     //3) 因为对象私有化了,所以只能通过公共的静态方法获取这个唯一的对象
    29     public static Singleton2 getInstance() {
    30         //第一次调用时才创建对象
    31         if (only == null) {
    32             only = new Singleton2();
    33         }
    34         return only;
    35     }
    36     
    37 }

    转载请注明出处!

    http://www.cnblogs.com/libingbin/

    感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。

  • 相关阅读:
    冲刺进度条03
    冲刺进度条02
    冲刺进度条01
    第二阶段团队冲刺(九)
    第二阶段团队冲刺(八)
    第二阶段团队冲刺(七)
    用户体验评价
    第二阶段团队冲刺(六)
    程序员修炼之道:从小工到专家阅读笔记01
    2019春季学期进度报告(十三)
  • 原文地址:https://www.cnblogs.com/libingbin/p/5973803.html
Copyright © 2011-2022 走看看