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

    1.1、单身设计模式(Singleton)定义

      保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的方法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。单例模式也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。

    1.2、代码实现

      单身模式只能产生一个实例,为了实现这一目标,常用的方法是(不一定同时使用以下三种方法):
       把类本身的构造函数加访问权限控制符private,让外界方法无法直接调用它;
       声明一个此类的静态指针,用于指向仅能产生的那一实例;
       声明一个public 的返回结果为此类对象的方法,供外界调用。

     1 package com.designmode.singleton;
     2 
     3 /**
     4  * 时间:2016年10月11日
     5  * 题目:单例设计模式
     6  */
     7 public class SingletonTest {
     8 
     9     // 私有构造方法
    10     private SingletonTest(){
    11         
    12     }
    13     
    14     // 饿汉式单例设计模式
    15     private final static SingletonTest SINGLETON_TEST = new SingletonTest();
    16     public static SingletonTest getInstance(){
    17         return SINGLETON_TEST;
    18     }
    19     
    20     // 懒汉式单例设计模式
    21     private static SingletonTest singletonTest;
    22     public static SingletonTest getInstance2(){
    23         if (singletonTest == null) {
    24             singletonTest = new SingletonTest();
    25         }
    26         return singletonTest;
    27     }
    28     
    29     /**
    30      * 用户页面测试
    31      * @param args
    32      */
    33     public static void main(String[] args) {
    34         // 饿汉式单例设计模式测试
    35         SingletonTest singleton01 = SingletonTest.getInstance();
    36         SingletonTest singleton02 = SingletonTest.getInstance();
    37         if (singleton01 == singleton02) {
    38             System.out.println("饿汉式单例模式");
    39         }
    40         System.out.println("---------");
    41         // 懒汉式单例设计模式测试
    42         SingletonTest singleton03 = SingletonTest.getInstance2();
    43         SingletonTest singleton04 = SingletonTest.getInstance2();
    44         if (singleton03 == singleton04) {
    45             System.out.println("懒汉式单例模式");
    46         }
    47     }
    48 }
  • 相关阅读:
    XMPP框架下微信项目总结(5)花名册获取(好友列表)
    XMPP框架下微信项目总结(4)重新连接服务器
    XMPP框架下微信项目总结(3)获取点子名片信息(个人资料)更新电子名片
    XMPP框架下微信项目总结(2)授权登陆/注销/注册/打印日志
    XMPP框架下微信项目总结(1)环境配置
    比较 http连接 vs socket连接
    js判断变量是否为undefined
    sql查询优化的方法
    Jquery学习之插件开发
    Jquery学习之Jquery插件
  • 原文地址:https://www.cnblogs.com/wangchaoyuan/p/5952382.html
Copyright © 2011-2022 走看看