Netty框架中的设计模式

1、facade模式(外观模式)

JDK的SocketChannel和ServerSocketChannel没有统一的Channel接口供业务开发者使用,对于用户而言,没有统一的操作视图,使用起来不方便。而Netty重新定义了Channel接口,采用facade模式进行封装,将网络io操作,网络io相关联的其他操作封装起来,统一对外提供。

参考:https://www.cnblogs.com/lwbqqyumidi/p/3754251.html

2、观察者模式

ChannelFuture中有个重要的addListener方法,会添加特定的监听器到future中,这些监听器会在future isDone返回true的时候立刻被通知。

3、Reactor模式(反应器模式)

用于解决多用户访问并发问题。传统线程池模式:来一个客人(请求)去一个服务员(线程),当客人点菜时,服务员什么都不干,处于阻塞状态。Reactor模式:当客人点菜的时候,服务员去招呼其他客人,客人点好菜后,直接把服务员招呼过来。

反应器模式与观察者模式在某方面极为相似:当一个主体发生改变时,所有附属体都能得到通知。不同之处在于,观察者模式与单个事件关联,反应器模式与多个事件关联。

Netty线程模型中用到了Reactor模式,NioEventLoop中有selector。

4、责任链模式

Netty的ChannelPipeline和ChannelHandler机制类似于Servlet和Filter过滤器,这类拦截器实际上是责任链模式的一种变形。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值