博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建型—单例模式
阅读量:5371 次
发布时间:2019-06-15

本文共 861 字,大约阅读时间需要 2 分钟。

1、单例模式的意图:

  保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  所谓的全局访问点,在代码层次表现为类中的静态函数,通过类名即可调用。

2、单例模式类图:

  

角色

  • SingletonClass:通过一个类的public static的成员函数,允许用户类访问它的唯一实例;同时用一个私有的SingletonClass类型的静态成员变量来引用它的唯一实例。

协作

  • 用户类只能通过单例类(SingletonClass)公开的静态成员函数来获取单例类的唯一实例。

3、适用性:

  • 当类只能有一个实例而且用户可以从一个众所周知的访问点访问它时。
  • 当类可通过子类化来进行扩展,且系统中只能存在所有子类中的一个时。

4、代码实现:

1 package com.crazysnail.singleton; 2  3 public class Singleton { 4     private static Singleton theSingleton; 5      6     public static Singleton getInstance(){ 7         if(theSingleton==null) 8             theSingleton = new Singleton(); 9         10         return theSingleton;11     }12     13     protected Singleton(){14         /*对类中的数据成员进行初始化操作*/15     }16     17     /*类的其他域和相关的操作*/18 }

5、单例模式的特点:

  • 确保了实例的唯一性
  • 由类本身控制了唯一实例的实例化过程,可以方便的修改类的实例化过程
  • 每次对象请求引用时都要检查是否存在类的实例,这造成一定的开销

转载于:https://www.cnblogs.com/-crazysnail/p/3927767.html

你可能感兴趣的文章
php异常处理
查看>>
[xampp] /usr/bin/env: php: No such file or directory
查看>>
细学PHP 10 贴吧-2
查看>>
黑客攻防入门秘籍
查看>>
Swift迎来了1.0 GM 版(2014.09.09)
查看>>
【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意button状态的检查...
查看>>
《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本
查看>>
Java 编程下实现随机无重复数字功能
查看>>
Android 编程下的代码混淆
查看>>
animation属性
查看>>
页内的模块和组件抽象规划经验
查看>>
安全-分析深圳电信的新型HTTP劫持方式
查看>>
将Centos的yum源更换为国内的阿里云源
查看>>
git diff 的用法
查看>>
一段sql的优化
查看>>
十进制与十六进制的相互转换
查看>>
在Flex中用Validator检测数字、字符串、Email.
查看>>
[leetcode]4Sum
查看>>
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>