设计模式
sam-123
这个作者很懒,什么都没留下…
展开
-
netty设计模式-单例模式
单例模式是最常见的设计模式:1、忽略反射的影响,全局只有一个实例2、有可能会出现延迟创建实例对象,要使用的时候才创建3、这种设计模式能够避免线程安全问题 最常见的单例模式实现方法:懒汉模式(单例对象 volatile + 双重检测机制 -> 禁止指令重排)public class SingletonExample5 { // 私有构造函数 priv...原创 2018-07-22 17:53:10 · 2570 阅读 · 3 评论 -
netty设计模式-策略模式
策略模式的特点大致如下:1、封装一系列可替换的算法家族2、支持动态选择某一个策略 常见的策略模式实现方式/** * @see DefaultEventExecutorChooserFactory#newChooser(EventExecutor[]) */public class Strategy { private Cache cacheMemory = ne...原创 2018-07-22 17:58:29 · 1809 阅读 · 0 评论 -
netty设计模式-装饰器模式
装饰器模式被大量地使用在各种框架的源码里面,真正学会了对看源码和设计软件受益匪浅。1、装饰者和被装饰者继承同一个接口2、装饰者给被装饰者动态修改行为 首先我们一生活中的例子来看一看装饰器模式:/** * @see io.netty.buffer.WrappedByteBuf; * @see io.netty.buffer.UnreleasableByteBuf * @s...原创 2018-07-22 18:00:04 · 1558 阅读 · 0 评论 -
netty的设计模式
如果要阅读源码,首先就要学会基本的设计模式。设计模式是前人总结出来的软件设计方法,有利于使代码更加简洁优雅。了解了netty的设计模式,再去看源码,会有一种焕然大悟的感觉。一、单例模式单例模式是最常见的设计模式:1、忽略反射的影响,全局只有一个实例2、有可能会出现延迟创建实例对象,要使用的时候才创建3、这种设计模式能够避免线程安全问题netty单例模式分析详情二、策...原创 2018-07-22 15:58:32 · 4657 阅读 · 1 评论 -
netty设计模式-迭代器模式
迭代器模式使用很多,但是被我们经常忽略它居然也是一种模式。1、有一个迭代器接口。2、对容器里面各个对象进行访问。netty里面的CompositeByteBuf这个零拷贝的实现,就使用了迭代器模式。首先看一段代码: public static void main(String[] args) { ByteBuf header = Unpooled.wrapp...原创 2018-08-01 17:12:56 · 813 阅读 · 0 评论 -
netty设计模式-责任链模式
责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。首先来看看责任链模式的四个要素:1、责任处理器接口2、创建链,添加删除责任处理器接口3、上下文4、责任链终止机制。在netty里面,很明显channelHandler和Pipeline构成了责任链模式。让我们通过...原创 2018-08-03 10:15:23 · 2266 阅读 · 0 评论