最新永不磨灭的设计模式(23种设计模式全集),2024年最新字节跳动上千道精选面试题还不刷起来

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

简单工厂模式:

我们需要了解简单工厂模式。简单工厂模式就好比我们在家吃饭,只需要告诉妈妈想吃什么即可,不需要去向具体的制作过程。

放到我们的代码中就是有一个工厂类,它可以创建一对象,我们只需要告诉它我们想要什么对象即可。

工厂(方法)模式就好比我们去外面吃饭,不同的店提供不同的食品,我们挑选自己想吃的食品进去下单即可。

为什么要使用工厂(方法)模式:

因为如果我们要扩展可以创建不同的对象,那简单工厂就是需要去修改工厂类的源码的,这违反了开闭原则。

所以就将工厂设置为了抽象类,不同的工厂继承抽象工厂类即可生成不同的产品,想要什么样的产品就使用什么工厂类即可。

这样在扩展的时候只需要创建不同的工厂类即可。

详细讲解设计模式 - 工厂(方法)模式

3、抽象工厂模式

抽象工厂模式可以简单理解为一个大的食堂,这个食堂有各种各样的食品,我们需要要下单即可送到我们身边。

与工厂(方法)模式的区别:

工厂(方法)模式中的工厂还是只能生成同一类的产品,而抽象工厂模式则可以实现不同种类的产品。如果抽象工厂模式也只生成一种品类的产品,那将退化为抽象(工厂)方法

详细讲解设计模式 - 抽象工厂模式

4、原型模式

原型模式理解为克隆,即创建重复的对象,但又可以保证性能。

实现Cloneable接口并重写clone()方法即可实现克隆

关于浅克隆和深克隆

详细讲解设计模式 - 原型模式

5、建造者模式

对于复杂对象,我们是不可能一下将这个对象创建出来的,我们需要将这个对象进行拆解,然后按步骤来创建这个复杂的对象,实现了创建复杂对象的灵活性和可读性。

例如生产汽车,不可能是一下就将汽车创建出来new Car("发动机","轮胎","..."),而是将不同的零件按步骤添加到车辆中car.set("发动机") ......

详细讲解设计模式 - 建造者模式

结构型模式

6、适配器模式

适配器模式可以简单理解为手机充电器,手机充电是不能直接使用220V交流电的,所以需要使用充电器来将电压转为5V才能充电。

根据单一职责原则,一个类只负责一种功能,所以交流电和手机使用的电压对应两个不同的类,这样就可以增加一个适配器类来将两个类进行适配,这就是适配器模式。

详细讲解设计模式 - 适配器模式

7、桥接模式

桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

将抽象部分与实现部分分离,使它们都可以独立的变化。

详细讲解设计模式 - 桥接模式

8、组合模式

组合模式可以理解为一个树形结构中的各个元素都是结构相同的对象,我们来将这些元素抽象为一个抽象类,自己组和自己。

这样就不需要每一个层次都创建自己的结构,使用同一个结构即可。

详细解析设计模式 - 组合模式

9、装饰器模式

装饰器模式就是允许一个现有的对象添加功能,同时又不改变其结构。

我们可以想想去咖啡店点咖啡的时候,点了咖啡还可以加许多配料,设计这样的结构并且使代码符合开闭原则。

详细讲解设计模式 - 装饰器模式

10、外观模式

外观模式隐藏了系统的复杂性,并向客户端提供一个可以访问的接口。

例如我们在家里看电影,我们要做很多准备,但是如果我们有智能家庭影院的话我们只需要点几个按钮就可以了。智能家庭影院屏蔽了一些繁琐的细节,提供给我们简单明了的步骤。

详细讲解设计模式 - 外观模式

11、享元模式

享元模式即共享元素,如果一个需求基本都是相同的,那就将这个系统可变的需求独立出来,后面使用时只需要改变不同的位置即可,共同的地方是公用的。

享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。

详细讲解设计模式 - 享元模式

12、代理模式

代理模式主要有三种实现:静态代理、动态代理合Cglib代理。

详细讲解设计模式 - 代理模式

行为模式

13、责任链模式

为请求创建一个链式结构,链中的每一个节点依次对请求进行处理。知道满足结束条件即可。

详细讲解设计模式-责任链模式

14、命令模式

命令模式就是将我们需要执行的动作制作为命令,发送者只需要发送命令,具体命令怎么执行和谁来执行都不需要关注。

例如古代将军发号施令,它是不需要关注具体的执行过程的。

详细讲解设计模式 - 命令模式

15、迭代器模式

迭代器模式就是将容器遍历的行为和容器分离开来,例如树的结构有好几种遍历方式,我们容器只关注树的存储结构,迭代器只关注容器的遍历方法,这样组和起来即可满足开闭原则。

详细讲解设计模式 - 迭代器模式

16、中介者模式

中介者模式是用来降低多个对象和类之间的通信复杂性。将复杂的逻辑都维护到一个中介类中,其他类之间可以实现松耦合,使代码易于维护。

详细讲解设计模式 - 中介者模式

17、备忘录模式

备忘录模式就是保存某一时刻某个对象的重要属性,以便在适当的时候恢复。

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

详细讲解设计模式 - 备忘录模式

18、观察者模式

观察者模式就是被观察者实现一个存放观察者的集合,当发送变化时及时将信息同步到观察者。

详细讲解设计模式 - 观察者模式

19、状态模式

学漏一个,后续补充

20、策略模式

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

879395301)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值