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

    单例设计模式
    A:单例设计思想
    保证类在内存中只有一个对象
    B:如何实现类在内存中只有一个对象呢?
      构造私有
      本身提供一个对象
      通过公共的方法让外界访问
    C:案例演示:
    单例设计模式中:

      饿汉式
      懒汉式

    饿汉式:当这个类一被加载,就在内存中创建了一个对象

    1.保证内存中只有一个对象(构造私有)

    2.在本类中创建一个该类的对象

    3.创建一个公共的访问方式给外界获取该对象

     1 public class SingleInstanceDemo {
     2     private SingleInstanceDemo(){}
     3     
     4     //静态的随着类的加载而加载
     5     private static SingleInstanceDemo instance = new SingleInstanceDemo();
     6     
     7     //给外界提供公共的访问方式,返回该对象
     8     public static SingleInstanceDemo getInstance(){
     9         return instance;
    10     }
    11 
    12 }

    调用时代码:

    1 public static void main(String[] args) {
    2         SingleInstanceDemo instance = SingleInstanceDemo.getInstance();
    3         SingleInstanceDemo instance2 = SingleInstanceDemo.getInstance();
    4         System.out.println(instance==instance2);
    5 }

    懒汉式:需要的时候才去创建对象,不需要的时候不创建

     1 private SingleInstanceDemo2(){}
     2     
     3     private static SingleInstanceDemo2 instance = null;
     4     
     5     public static SingleInstanceDemo2 getInstance(){
     6         if (instance==null) {
     7             instance = new SingleInstanceDemo2();
     8         }
     9         return instance;
    10     }

    调用代码如下

    1 public static void main(String[] args) {
    2         SingleInstanceDemo2 instance = SingleInstanceDemo2.getInstance();
    3         SingleInstanceDemo2 instance2 = SingleInstanceDemo2.getInstance();
    4         System.out.println(instance==instance2);
    5     }

  • 相关阅读:
    sqlserver游标使用误区
    工作笔记——sqlserver引号的运用
    疯狂JAVA——数组
    工厂模式、单例和多例
    数据库数据交互详解(一)
    2016-4-6
    2016-4-5 博问问题、答题和查看收获
    Maven+Spring Batch+Apache Commons VF学习
    你忽视的静态类的作用(必看)
    Wireshark抓包工具使用教程以及常用抓包规则
  • 原文地址:https://www.cnblogs.com/shaofanglazi/p/6842285.html
Copyright © 2011-2022 走看看