[面试]最简洁明了的设计模式手册

还在为常见的23种模式不能掌握灵活运用发愁吗?我今天给大家整理了一个简洁明了的手册:23种设计模式的UML图以及对应使用介绍,方便大家掌握使用。
我的宫伀号【编程学习指南】有更多编程学习干货,欢迎围观交流~



责任链模式

属于行为模式。

多个请求处理者组成一个链式结构,允许将请求沿着处理者链进行传递,每个处理者可以对其进行处理或往下传递。

命令模式

属于行为模式。

将请求封装为一个对象,使发请求的责任和执行请求的责任解耦。二者之间通过命令对象进行沟通,方便将命令对象进行存储、传递、调用、撤销等管理。


责任链模式

属于行为模式。

给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。

迭代器模式

属于行为模式。

提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。


中介者模式

属于行为模式。

定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。

备忘录模式

属于行为模式。

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。

观察者模式

属于行为模式。

指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式。

状态模式

属于行为模式。

对有状态的对象,把复杂的"判断逻辑"提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

策略模式

属于行为模式。

该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

模板方法模式

属于行为模式。

定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。


访问者模式

属于行为模式。

将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。

适配器模式

属于结构型模式。

将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

桥接模式

属于结构型模式。

将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

组合模式

属于结构型模式。

有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示"整体-部分"的关系,使用户对单个对象和组合对象具有一致的访问性。

装饰器模式

属于结构型模式。

指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。

外观模式

属于结构型模式。

门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

享元模式

属于结构型模式。

运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。

代理模式

属于结构型模式。

由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。

抽象工厂模式

属于创建型模式。

是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

建造者模式

属于创建型模式。

指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。


工厂方法模式

属于创建型模式。

"工厂方法模式"是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。

工厂方法模式

属于创建型模式。

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。

单例模式

属于创建型模式。

指一个类只有一个实例,且该类能自行创建这个实例的一种模式。

我的宫伀号【编程学习指南】有更多编程学习干货,欢迎围观交流~
#java求职##内推##春招##实习##笔试题目##面经#
全部评论
不错,收了~
点赞 回复 分享
发布于 2022-02-21 09:39
给大家总结下最简洁明了的设计模式手册
点赞 回复 分享
发布于 2022-02-21 09:40
欢迎大家关注我的公众号「编程学习指南」获取更多面经!
点赞 回复 分享
发布于 2022-03-20 18:25

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
8 56 评论
分享
牛客网
牛客企业服务