zoukankan      html  css  js  c++  java
  • 【JAVA基础】单例模式的设计

    1. 单例设计模式的概念

      在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式。

     

    2. 单例设计模式的实现流程

    2.1. 私有化构造方法,使用private关键字修饰。

    2.2. 声明本类类型的引用指向本类类型的对象,并使用private static关键字共同修饰。

    2.3. 提供公有的get方法负责将对象返回出去,并使用public static关键字共同修饰。

     

    3. 单例设计模式的实现方式

      单例设计模式的实现方式有两种:饿汉式 和 懒汉式,在以后的开发中推荐饿汉式。

     1 /*
     2     编程实现Singleton类的封装
     3  */
     4 public class Singleton {
     5     
     6     // 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
     7     //private static Singleton sin = new Singleton();  // 饿汉式
     8     private static Singleton sin = null;               // 懒汉式
     9     
    10     // 1.私有化构造方法,使用private关键字修饰
    11     private Singleton() {}
    12     
    13     // 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
    14     public static Singleton getInstance() {
    15         //return sin;
    16         if(null == sin) {
    17             sin = new Singleton();
    18         }
    19         return sin;
    20     }
    21 }
     1 /*
     2     编程实现Singleton类的测试
     3  */
     4 public class SingletonTest {
     5     
     6     public static void main(String[] args) {
     7         
     8         // 1.声明Singleton类型的引用指向该类型的对象
     9         //Singleton s1 = new Singleton();
    10         //Singleton s2 = new Singleton();
    11         //System.out.println(s1 == s2); // 比较变量s1的数值是否与变量s2的数值相等  false
    12         //Singleton.sin = null;  可以使得引用变量无效
    13         Singleton s1 = Singleton.getInstance();
    14         Singleton s2 = Singleton.getInstance();
    15         System.out.println(s1 == s2); // true
    16     }
    17 }
  • 相关阅读:
    (转)Java 详解 JVM 工作原理和流程
    sql复杂查询语句总结
    公众平台服务号、订阅号、企业号的相关说明
    新公司注册流程
    认缴出资额和实缴出资额的区别
    ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)
    APP后端处理视频的方案
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
    app后端搜索入门
    APP后端处理表情的一些技巧
  • 原文地址:https://www.cnblogs.com/Tree0108/p/14106358.html
Copyright © 2011-2022 走看看