Java设计模式(一)单例模式

设计模式是对软件设计中普遍存在的各种问题,提出解决方案
设计模式包含了面向对象的精髓,懂了设计模式,你就懂了面向对象分析和设计的精要。

设计模式的七大原则

1.单一职责原则
2.接口隔离原则
3.依赖倒置原则
4.里氏替换原则
5.开闭原则ocp
6.迪米特法则
7.合成复用原则

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

总共二十三种设计模式

UML建模

单例模式

八种方式
推荐使用6,7,8.饿汉式也可以

1.饿汉式(静态常量)

在这里插入图片描述
优点,这种写法比较简单,在类加载的时候完成实例化,避免了线程同步问题
缺点,如果一直没有使用这个实例,会造成内存浪费

2.饿汉式(静态代码块)

在这里插入图片描述
将类实例化过程放在静态代码块中,和上面一样

3.懒汉式(线程不安全)

在这里插入图片描述
多线程下进入null判断产生多实例,实际开发不使用

4.懒汉式(线程安全,同步方法)

在下面方法加入synchonized锁
在这里插入图片描述
效率低

5.懒汉式(线程安全,同步代码块)

在这里插入图片描述
但是没有解决线程安全,进入null判断还是会产生多实例,实际开发不使用。

6.双重检查(推荐使用)

解决线程安全,效率保证,推荐使用
在这里插入图片描述

7.静态内部类(推荐使用)

类加载,静态内部类不会加载
在这里插入图片描述
避免线程不安全,利用静态内部类特点实现延迟加载,效率高,推荐使用。

8.枚举(推荐使用)

在这里插入图片描述
避免多线程同步问题,还能防止反序列化重新创建新的对象。

单例模式在JDK中使用
Runtime类就是经典的单例模式,饿汉式

单例模式保证了系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。
数据源,session工厂等可以使用单例模式

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值