Skip to content

Latest commit

 

History

History
53 lines (51 loc) · 4.94 KB

Netty源码阅读入门实战(十一)---设计模式的应用.md

File metadata and controls

53 lines (51 loc) · 4.94 KB

1 单例模式

基本类型的单例模式代码

1.1 Netty 实例

1.1.1 ReadTimeoutException

可以看出,构造器私有,防止随意创建 static保证延迟加载

1.1.2 MqttEncoder

2 策略模式

基本类型的策略模式代码

根据 executers 去选择相应的策略

两种策略

3 装饰者模式

image.png

Netty 实践

4 观察者模式

4.1 常规操作

运行 结果

4.2 Netty 的实践

  • 在调用 writeAndFlush 后,其实返回的就是被观察者ChannelFulture
  • 添加观察者 下面让我们深入writeAndFlush 看看
  • 从 pipeline 开始传播
  • 从 tail节点从后往前进行传播
  • promise就是被观察者 下面看看添加观察者的源码实现~