Netty源码实战(十一) - 设计模式的应用
1 单例模式
1.1 Netty 实例
1.1.1 ReadTimeoutException
可以看出,构造器私有,防止随意创建
static保证延迟加载
1.1.2 MqttEncoder
2 策略模式
3 装饰者模式
Netty 实践
4 观察者模式
4.1 常规操作
4.2 Netty 的实践
- 在调用 writeAndFlush 后,其实返回的就是被观察者ChannelFulture
- 添加观察者
下面让我们深入writeAndFlush 看看 - 从 pipeline 开始传播
- 从 tail节点从后往前进行传播
- promise就是被观察者
下面看看添加观察者的源码实现~
3 迭代器模式
- 示例
4 责任链模式