本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)
b站视频
1.设计模式的说明
1.1 理解
设计模式是在大量的实践中总结和理论化之后优的代码结构、编程风格、以及解决问题的思考方式。
1.2 常用设计模式 — 23种经典的设计模式 GOF
创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
2.单例模式
2.1 要解决的问题:
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。
2.2 具体代码的实现:
饿汉式1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Bank{ private Bank(){ } private static Bank instance = new Bank(); public static Bank getInstance(){ return instance; } }
|
饿汉式2:使用了静态代码块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Order{ private Order(){ } private static Order instance = null;
static{ instance = new Order(); } public static Order getInstance(){ return instance; } }
|
懒汉式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Order{
private Order(){ } private static Order instance = null; public static Order getInstance(){ if(instance == null){ instance = new Order(); } return instance; } }
|
2.3 两种方式的对比:
饿汉式:
坏处:对象加载时间过长。
好处:饿汉式是线程安全的
懒汉式:好处:延迟对象的创建。
目前的写法坏处:线程不安全。—>到多线程内容时,再修改
线程安全的单例模式(懒汉式)
https://www.yuanql.top/2023/01/08/03_java%E5%9F%BA%E7%A1%80%E7%BC%96%E7%A8%8B/08_%E5%A4%9A%E7%BA%BF%E7%A8%8B/%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F(%E6%87%92%E6%B1%89%E5%BC%8F)/