zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Netty源码实战(十一) - 设计模式的应用

应用源码设计模式 实战 Netty 十一
2023-09-27 14:19:48 时间

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就是被观察者



    下面看看添加观察者的源码实现~


3 迭代器模式

  • 示例

4 责任链模式