Java学习笔记210303

设计模式

单例模式

有8种写法,比较完美的有两种

  1. 第一种写法 饿汉式 (推荐使用)

    image-20210303095807254

  2. 第二种写法 (与第一个没多大区别)

image-20210303100333399

  1. 第三种 懒汉式

    image-20210303100645328

在多线程的情况下,会出现混乱的问题。

  1. 第四种写法 也称为懒汉式 ,为了解决3的问题,加锁,但是效率会降低

    image-20210303101650114

image-20210303101827498

  1. 第五种写法 也称为懒汉式 但还是不能彻底混乱的问题

    image-20210303103235098

  2. 第六种写法 也称为懒汉式 双重检查

    image-20210303104003250

  3. 第七种写法 比较完美的写法之一 ,静态内部类 ,比第一个完美一些 ,JVM保证了线程安全

    image-20210303104248470

  4. 第八种写法 完美之二的写法 但实际应用很少

    image-20210303104858499

策略模式

简单示例:

20210303142542

工厂模式

定义:

image-20210303165427631

简单工厂模式

image-20210303175831580

示例:

20210303175920

示例2:

20210303181719

工厂方法模式

image-20210303180145554

简单示例:

20210303180236

示例2 (多个工厂方法模式):

image-20210303182326999

image-20210303182511513

image-20210303182535497

示例三:(静态工厂方法模式

image-20210303182833553

image-20210303182910733

抽象工厂模式

image-20210303180357927

简单示例:

20210303180632

示例2:

20210303183012

image-20210303183304996

(扩展:工厂模式 + 策略模式 示例)

步骤一:创建一个接口

image-20210303170118294

步骤二:创建实现接口的实体类。

image-20210303170234895

image-20210303170255248

image-20210303170319633

步骤三:创建工厂

image-20210303170406566

步骤四:具体调用

(img-qOHRMZhF-1614767750508)]

[外链图片转存中…(img-RscJ1ftK-1614767750508)]

步骤三:创建工厂

[外链图片转存中…(img-xBIT9fKV-1614767750508)]

步骤四:具体调用

image-20210303170511413

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丢了尾巴的猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值