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 }
  • 相关阅读:
    C 语言 静态库和动态库的创建和应用
    C++ 中英文术语对照
    下午
    [转]内核 do_fork 函数源代码浅析
    关于C#反射机制,自己写的
    获取字符串中数字
    关于C#反射机制,来源于网络
    关于 Nhinernate 的one to one(转载)
    鼠标坐标的记录
    关于C#中hibernate.cfg.xml动态加载问题
  • 原文地址:https://www.cnblogs.com/siyingcheng/p/4300329.html
Copyright © 2011-2022 走看看