首页 > 代码库 > 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 args32 */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 }
Java设计模式之单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。