设计模式课程 设计模式精讲 8-1 单例模式讲解

1    课堂概述

1.1  定义

1.2  适用场景

1.3  优点

1.4  缺点

1.5  重点

1.6  实用技能

1.7  单例-相关设计模式 

 

1    课堂概述
1.1  定义

定义:保证一个类仅有一个实例,并提供一个全局访问点

类型:创建型

 

1.2  使用场景

a  ◆想确保任何情况下都绝对只有一个实例

b  当一个对象需要频繁的被创建销毁的时候,并且创建或者销毁的性能无法优化

例如:

单服务情况下网站的计数器可以使用单例模式;

线程池情况下使用单例模式;

数据库连接池也会使用单例模式;

 

1.3  优点

a  在内存只有一个实例,减少了内存开销

b  可以避免对资源的多重占用

c  设置全局访问点,严格控制访问(对外不能被new出来,无法实例化)

 

1.4  缺点

 没有接口,扩展困难

 

1.5  重点

a  私有构造器  禁止单例类外部调用构造函数来创建对象,需要设置该构造函数的权限为private

b  线程安全

c  延迟加载  (使用的时候创建,而不是初始化定的时候创建,可以节省开销)

d  序列化和反序列化安全 (序列化和反序列化会对单例模式破坏)  (加分项)

e  反射  (单例模式如何应对反射攻击)(加分项)

f  doublecheck 双层检查锁的内存机制

g  单例静态内部类的实现方案

 

1.6  实用技能

a  反编译

b  内存原理

c  多线层debug

 

1.7  单例-相关设计模式

a  单例模式和工厂模式

b  单例模式和享元模式

 

转载于:https://www.cnblogs.com/1446358788-qq/p/11354816.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值