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

    设计模式:

    * 设计模式:解决某一类问题最行之有效的方法;
    * Java有23中设计模式
    * 单例设计模式:解决一个类在内存只存在一个对象;
    *
    * 想要保证对象唯一
    * 1.为了避免其他程序过多建立该类对象。先控制禁止其他程序建立该类对象
    * 2.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
    * 3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
    *
    * 这三部如何用代码体现呢?
    * 1. 将构造函数私有化
    * 2. 在类中建立一个本类对象
    * 3. 提供一个方法可以获取到该对象

    * 对于事物该怎么描述,还怎么描述。
    * 当需要将该事物的对象保证在内存中唯一时,就将上面3部加上即可。

    单利设计模式:建议使用饿汉式

    1. 饿汉式

     1 //先初始化对象,称为:饿汉式
     2 //Sinle类一进内存就创建对象
     3     
     4 class Single
     5 {
     6     private Single(){}
     7     private static Single s = new Single();
     8 
     9     public static Single getInstance()
    10     {
    11         return s;
    12     }
    13 }
    14 class  DanLiDemo
    15 {
    16     public static void main(String[] args) 
    17     {
    18         Single ss = Single.getInstance();
    19     }
    20 }

    2.懒汉式

     1 //对象是方法被调用时,才初始化,也叫做对象的延时加载,称为:懒汉式
     2 //Single2类进内存,对象还没有存在,只有调用getInstance时,才创建对象。
     3 class Single2
     4 {
     5     private static Single2 s = null;
     6     private Single2(){}
     7     private static Single2 getInstance()
     8     {
     9         if (s == null)
    10         {
    11             s = new Single2();
    12             return s;
    13         }
    14     }
    15 }
    16 
    17 class  DanLiDemo
    18 {
    19     public static void main(String[] args) 
    20     {
    21         Single2 ss = Single2.getInstance();
    22     }
    23 }
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/siyingcheng/p/4300329.html
Copyright © 2011-2022 走看看