速记Java八股文—— Java 设计模式篇

前言

分类汇总 20+ 常见的 Java 设计模式篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

Java 设计模式篇


一共有多少种设计模式,分成几类?

一共有23种设计模式。共分为3类。

  1. 创建型模式

    • 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。

    • 工厂方法模式(Factory Method):定义一个接口用于创建对象,但让子类决定要实例化的类是哪一个。

    • 抽象工厂模式(Abstract Factory):提供一个接口,用于创建一系列相关或依赖对象,而不需要明确指定它们的类。

    • 建造者模式(Builder):将复杂对象的构建与其表示分离,允许通过精确指定构建和表示步骤来构造复杂对象。

    • 原型模式(Prototype):通过复制现有的实例来创建新的实例。

  2. 结构型模式

    • 适配器模式(Adapter):允许将不兼容的接口转换为一个可以使用的兼容接口。

    • 桥接模式(Bridge):分离一个类的行为,使它从它的形式中分离出来,使它们可以独立地变化。

    • 组合模式(Composite):允许你将对象组合成树形结构以表示"部分-整体"的层次结构。

    • 装饰器模式(Decorator):动态地添加另一个对象的功能,而不是创建它们子类的新的类。

    • 外观模式(Facade):为子系统中的一组接口提供一个一致的界面。

    • 享元模式(Flyweight):以共享的方式高效地支持大量细粒度的对象。

    • 代理模式(Proxy):为其他对象提供一个代理或占位符,以控制对这个对象的访问。

  3. 行为型模式

    • 责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。

    • 命令模式(Command):将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化。

    • 解释器模式(Interpreter):定义一个语言的文法,并且建立一个解释器来解释该语言中的句子。

    • 迭代器模式(Iterator):提供一种顺序访问聚合对象元素的方法,而不暴露聚合对象的内部表示。

    • 中介者模式(Mediator):定义一个中介对象来简化其他对象(同事类)之间的交互。

    • 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

    • 观察者模式(Observer):当对象间存在一对多关系时,则使用观察者模式。一个被观察的对象变化时,所有依赖它的对象都会得到通知并自动更新。

    • 状态模式(State):允许对象在其内部状态改变时改变它的行为。

    • 策略模式(Strategy):定义一系列算法,把它们一个个封装起来,并使它们可以互换。

    • 模板方法模式(Template Method):定义一个操作中算法的骨架,而将一些步骤延迟到子类中。

    • 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。


相关推荐
毕设源码-朱学姐8 小时前
【开题答辩全过程】以 基于JavaWeb的网上家具商城设计与实现为例,包含答辩的问题和答案
java
C雨后彩虹10 小时前
CAS与其他并发方案的对比及面试常见问题
java·面试·cas·同步·异步·
java1234_小锋11 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试
2501_9445255411 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 账户详情页面
android·java·开发语言·前端·javascript·flutter
计算机学姐11 小时前
基于SpringBoot的电影点评交流平台【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·spring·信息可视化·echarts·推荐算法
Filotimo_11 小时前
Tomcat的概念
java·tomcat
索荣荣12 小时前
Java Session 全面指南:原理、应用与实践(含 Spring Boot 实战)
java·spring boot·后端
Amumu1213812 小时前
Vue Router(二)
java·前端
念越12 小时前
数据结构:栈堆
java·开发语言·数据结构