首页 > 其他 > 详细

设计模式之-【创建型模式-单例模式】

时间:2020-07-24 00:28:12      阅读:75      评论:0      收藏:0      [点我收藏+]

设计模式之-单例模式

在系统中为节省资源,保证数据内容一致,会定义某些类,一个类只能创建一个实例对象,称之为单例模式。

单例模式特点:

1、单例类只能有一个实例

2、单实例必须有单例类自行创建

3、单例类提供一个全局的访问单实例的方法

 

单例的结构

  通常来说普通类,通过new构造函数创建多个实例对象,但是如果类的构造函数变成了私有,就无法通过new 来创建多个对象,由此该类会对外提供一个静态的共有方法给外部访问该类的静态实例对象。

 

简单实现单例模式

  技术分享图片

 

 

 

单例模式的实现

  单例模式实现有两种方式,一、懒汉式;二、饿汉式

  一、懒汉式-单例模式

    在类加载时,不会创建实例对象,只有当在第一次调用get方法时才会的创建实例对象

    技术分享图片

 

 

   volatile 和 synchronized 保证单例在多线程中起到线程安全,由于是线程同步,因此性能上会消耗更多的资源。

 

  二、饿汉式-单例模式

    在该类一旦被加载就会创建一个实例对象,并保证在调用get方法获取实例方法之前已经创建了实例对象。创建出来的是 static final 修饰的实例对象,所以是线程安全的。

    技术分享图片

应用场景

   单例模式在系统中应用,当某个对象频繁的被实例化,然后频繁被回收,将造成资源消耗,过多的实例对象占用内存空间。因此可通过单例实例化一个对象,被所有线程共享,减少资源消耗。或者实例化一定数量的实例对象放在一个线程池中,例如数据库连接池,web网络链接池。

 

设计模式之-【创建型模式-单例模式】

原文:https://www.cnblogs.com/zhaiMaoDou/p/13369416.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!