请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

设计模式之单例模式(Singleton Pattern),太简单了

[复制链接]
查看: 68|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
74927
发表于 2020-9-15 13:58 | 显示全部楼层 |阅读模式
基本定义
单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式有如下几个特点:

  • 它只有一个实例。
  • 它必须要自行实例化。
  • 它必须自行向整个系统提供访问点。
代码实现
饿汉式
直接初始化静态变量。这样就保证了线程安全。
  1. public class Singleton {private static Singleton singleton = new Singleton();private Singleton(){}public static Singleton getInstance(){return singleton;}}
复制代码
懒汉式
按需加载. 配合synchronized来处理。也就是说将getInstance()方法变成同步方法
  1. public class LazySingleton {private static volatile LazySingleton lazySingleton;private LazySingleton(){}public static LazySingleton getInstance(){if(lazySingleton == null){synchronized(LazySingleton.class){lazySingleton = new LazySingleton();}}return lazySingleton;}}
复制代码
优点
节约了系统资源。由于系统中只存在一个实例对象,对与一些需要频繁创建和销毁对象的系统而言,单例模式无疑节约了系统资源和提高了系统的性能。
因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它。
缺点
由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。
JDK源码
懒汉式
java.lang.Runtim
我的关键词 设计模式之单例模式(Singleton Pattern),太简单了  新闻咨询 1275286-20200422094716814-1256613538

饿汉式
java.lang.System
我的关键词 设计模式之单例模式(Singleton Pattern),太简单了  新闻咨询 1275286-20200422094755874-872549887

我的关键词 设计模式之单例模式(Singleton Pattern),太简单了  新闻咨询 up-5f916277a19ae27be2f7b72c58f77666db0

我的关键词 设计模式之单例模式(Singleton Pattern),太简单了  新闻咨询 1275286-20200422094733525-353680305


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表