设计模式---(创建型)单例模式
概念
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
类图
动机
实例
第一种形式:懒汉式
public class SingletonClass{private static SingletonClass instance=null;public static synchronized SingletonClass getInstance(){if(instance==null){instance=new SingletonClass();}return instance;}private SingletonClass(){} }
第二种形式:饿汉式
public static class Singleton{//在自己内部定义自己的一个实例,只供内部调用private static final Singleton instance = new Singleton();private Singleton(){//do something }//这里提供了一个供外部访问本class的静态方法,可以直接访问public static Singleton getInstance(){return instance;} }
第三种形式: 双重锁的形式。
public static class Singleton{private static Singleton instance=null;private Singleton(){//do something }public static Singleton getInstance(){if(instance==null){synchronized(Singleton.class){if(null==instance){instance=new Singleton();}}}return instance;} }
转载于:https://www.cnblogs.com/myadmin/p/4949150.html
设计模式---(创建型)单例模式相关推荐
- 设计模式(21):创建型-单例模式(Singleton)
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...
- 设计模式(java版)——创建型——单例模式
项目源码已提交github:https://github.com/ckl001/designPattem_java 创建型 单例模式 1.饿汉模式 2.懒汉模式 3.内部类模式 4.枚举模式 破坏单例 ...
- 设计模式(创建型)之建造者模式(Builder Pattern)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...
- 七大设计原则与设计模式(创建型模式、结构型模式、行为型模式)
七大设计原则 开闭原则.依赖倒置原则.单一职责原则.接口隔离原则.迪米特法则(最少知道原则).里氏替换原则.合成 (组合).聚合复用原则 开闭原则 定义: 一个软件实体如类.模块和函数应该对扩展开放, ...
- 软考软件设计师---面向对象技术(设计模式--创建型--工厂、生成器、原型、单例)
转载于自己博客文章: 软考软件设计师---面向对象技术(设计模式--创建型--工厂.生成器.原型.单例) - 松下之约一.创建型设计模式关注对象的创建,让一个类得到实例化过程由另一类的对象完成.分类: ...
- 设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript
设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript 简单工厂模式 定义一个接口,三个具体类.然后书写如下,通过选择,生产出相应的对象 // 定义Shape接口 interface Sh ...
- 设计模式-创建型模式-建造者模式
设计模式-创建型模式-建造者模式 建造者模式即生成器模式,将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 代码如下 // 产品类 public class Product{pu ...
- 设计模式-创建型模式-模板方法
设计模式-创建型模式-模板方法 定义一个操作中的算法框架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义一个算法的步骤. protected 对于本包及其子类可见. 类图 代码 代 ...
- 设计模式-创建型模式-工厂模式(工厂三兄弟)
设计模式-创建型模式-工厂模式(工厂三兄弟) 工厂模式分为简单工厂,工厂方法,抽象工厂. 简单工厂模式 一个接口,三个具体类,一个工厂,通过选择,生产出对应的对象. package demo2;pub ...
- 设计模式-创建型模式-抽象工厂模式
工程源码:设计模式-创建型模式-抽象工厂模式https://download.csdn.net/download/qq_40788199/85544119 码云:设计模式-创建型模式-抽象工厂模式ht ...
最新文章
- 颠覆认知:SRE 到底是干啥的?
- 在datagridview里添加自定义控件列
- 安装了ubuntu14.04+windows7双系统的笔记本启动后出现grub rescue提示符
- 抛弃windows用linux来工作吧
- java高级应用:线程池全面解析
- 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17
- 【CV】基于python和OpenCV构建智能停车系统
- V-7 Openstack 在ceph中转换镜像格式
- 正则验证IP、掩码、端口
- lvds 共模电感_【成功案例】共模电感CM0805C221R-10解决车载LVDS信号的手持天线抗扰问题...
- activiti学习
- 5.3傅立叶变换意境级讲解
- 编译Libgdiplus遇到的问题
- 动态将ASPX生成HTML网页并将网页导出PDF
- C#——SqlParameter的使用方法及注意事项
- select()函数详解
- Android隐藏输入法 【有效】
- 《计算机视觉中的数学方法》
- VC|MFC内存不能为read,内存不能为 written 分析
- mysql主从配置duxi_mysql主从配置
热门文章
- 一个Java程序员的阿里面试心得,附答案解析
- 【408预推免复习】计算机组成原理之指令系统
- python【蓝桥杯vip练习题库】ADV-281特等奖学金
- python【力扣LeetCode算法题库】10-正则表达式匹配
- C++ with STL(一)
- oracle中resource权限,Oracle内置角色connect与resource的权限
- python实现项目的复制_Python之copy模块
- python for循环九九乘法表_python—用for循环、while循环和一句话打印九九乘法表
- sql 拼接int类型的字段_一套简单实用的SQL脚本(下篇)
- java 循环赛问题,网球循环赛思路 - 分治法求解(无代码)