← 每日面试题 学习看板

Netty 中用了哪些设计模式?

面试题/00java/04 框架/05Netty/Netty 中用了哪些设计模式?.md

面试记录 2026-10-11

题目:Netty 中用了哪些设计模式?

难度:difficulty/high

标签:spring/netty, difficulty/high

评分:⭐⭐☆☆☆(2/5)

我的回答

NGINX 首先使用的单例模式,它使用多个过滤器来处理过多的请求。另外它使用了责任链设计模式。还有工厂设计模式,创建 netty 对象的时候。

点评

优点:

不足:

补充:

完整讲解

第一部分:知识重点剖析

核心考点定位:考察对 Netty 架构设计的理解,以及能否把设计模式与 Netty 的实际实现对应。

知识点拆解:

  1. 责任链模式(Netty 核心):
  1. 观察者模式(事件驱动):
  1. 策略模式(灵活选择):
  1. 模板方法模式(抽象处理流程):
  1. 外观模式(简化复杂操作):
  1. 建造者模式(构建复杂对象):
  1. 单例模式(谨慎使用):

第二部分:考察方向与延伸递进

考察方向:

延伸递进面试题:

  1. Netty 的 Pipeline 和 Servlet 的 FilterChain 有什么区别?
  1. Netty 的 EventLoop 模型和 Reactor 模型有什么关系?
  1. Netty 如何扩展自定义 Handler?

第三部分:面试者参考回答(300-600 字口语化)

面试官您好,Netty 是设计模式的应用典范,我按结构型、行为型、创建型三类来讲。

结构型模式:

行为型模式:

创建型模式:

关键区分点:

实际工程借鉴:我在开发 RPC 框架时会借鉴 Netty 的设计——用 Pipeline 处理协议解析、编解码、业务处理;用 EventLoop 实现无锁化的高并发处理;用 Builder 模式简化客户端配置。