这是我参与更文挑战的第2天,活动详情查看: 更文挑战
本文正在参加「Java主题月 - Java 开发实战」,详情查看 活动链接
俗话说,授人以鱼不如授人以渔,今天这一篇不是一个要去深入理解源码而去准备学习的设计模式,仅仅只是一个花一点时间重温一下所学的相关知识点
Spring Boot涉及的9种设计模式,如下(学习之前,花了1小时做了对这几种设计模式的回忆)
- 简单工厂模式(09:25~09:31)
- 工厂方法模式(09:51~09:55)
- 装饰器模式(09:56~10:00 )
- 单例模式(10:00~10:05)
- 观察者模式(10:06~10:09)
- 策略模式(10:16~10:19)
- 模板方法模式(10:20~10:21)
- 代理模式(10:21:~10:23)
- 适配器模式(10:23~10:25)
结果很糟,以下图片是错误案例,请勿模仿
好了,接下来才是相对硬核点的知识点:
什么是工厂模式?
实现了创建者和调用者的分离,调用者不需要知道具体的创建者是什么类,只需要知道工厂的接口以及自己想要的产品名称,就可以进行调用得到想要的产品
场景(①):在一个网购的场景中,顾客下单购买衣服,店家就跑去找厂家拿产品,然后返回给顾客就行了 简单工厂模式(StaticFactory Method):
优点
-
简单工厂包含必要的判断逻辑,简单工厂实现了对象的创建和使用的分离。
-
客户端无需知道所创建的具体产品类的类名,只需要具体产品类对应的参数即可!
-
在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性 场景:若①的顾客有小明和小雪
第一步:小明来了,要购买衬衫,店家让厂家生产出衬衫,然后拿给小明 第二步:小雪来了,要购买裙子,这时店家直接让厂家增加生产裙子,然后拿给小雪 第三步:厂家出问题了,所有产品都没法生产(出问题是因为一直要对厂家)
一个工厂承包了所有的产品,这样子做,供应链上就很简单,但是对厂家的负荷大,一旦厂家出事了,那么,所有产品都没法生产,对所有顾客都有影响,这体现了简单工厂违反了开放——封闭的原则(对扩展开放,对修改关闭;要增加一个新的处理逻辑,可以开一个新的类,不要在老的上面修改)
第一步:小明来了,要购买衬衫,店家拿出电话簿,让厂家(专业生产衬衫)生产出衬衫,然后拿给小明
第二步:小雪来了,要购买裙子,店家拿出电话簿,让厂家(专业生产裙子)生产出裙子,然后拿给小雪
小结:今日小篇章完成了,专注的时间比第一篇多了,自我感觉比昨天的小篇章好一点,内容上更有针对性,对知识点的理解也清晰了,当然,本篇还有遗憾的地方,9大设计模式只是写了了2个,这两个设计模式概念性的东西多一些,与Spring Boot的相关性还有所欠缺。