Netty中的设计模式建造者设计模式
Posted 码农的修炼之道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty中的设计模式建造者设计模式相关的知识,希望对你有一定的参考价值。
我们知道Netty是一款优秀的开源网络框架,本来这一篇想写Netty中的延迟队列。但是这个内容还是放到后面再写吧。最近这几篇文章先来谈一谈Netty中使用的设计模式。
我们先来看一下基本的建造者设计模式。如下,我们定义一个学生类,定义一些基本参数。
然后设置set方法。
这里设置方法,与我们平时的setter/getter方法有点区别。在这里,我们设置完参数,返回对象本身。代码中就是return this。为什么要这样做呢?我们继续看怎么使用。
使用的时候,我们先创建一个student对象,然后调用set方法设置参数。如上所示,我们也叫这种编程为“链式编程”。因为每个方法都会返回对象本身,而对象已经设置好了自己的属性。
下面我们看看在Netty中怎么使用Builder设计模式了。
如下图所示,大家还记得,在服务端启动的时候有个启动辅助类ServerBootStrap,我们调用group方法、channel方法设置参数。这里面也使用了链式编程来设置相关参数。
我们到源码中看一下group方法。调用完设置参数后,返回this对象。
我们再看看其他方法,比如childOption方法,最后设置完参数依然返回this。
其他方法依然如此。这样设计的目的在于可以自由选择设置相关参数而不强求绑定。这样可以根据使用场景进行自由的设置参数。但是缺点也是明显的,那就是使用者自己要清楚设置哪些参数。
该设计模式对我们的最大启发就是设置参数,我们可以将参数定义在一个类中,然后通过链式调用来设置参数。我们需要设置哪些参数就调用哪些方法。实际上这个设计模式在我们日常开发中都能使用到,你注意了吗?
好了,今天先介绍到这儿。后面我们还会看到Netty中其他一系列优秀的设计模式。比如:单例设计模式、策略设计模式、装饰者设计模式、观察者设计模式、迭代器设计模式、责任链设计模式。
我们后面的文章会一一介绍这些设计模式。今天先写到这儿吧。后续还会介绍Netty中的其他设计模式。
以上是关于Netty中的设计模式建造者设计模式的主要内容,如果未能解决你的问题,请参考以下文章