这个方法给了我很大的启发。
考虑这样一个场景,我们将自己的程序打包成一个 jar
包,然后暴漏一个方法供调用,但是,很多人会有不同的传递需求,比如
- 传递参数为
String
int
- 自己定义的数据类型
- 其他问题
每个人的需求都是多种多样的,所以,我们不可能适应所有人的需求,那么,有没有一劳永逸的方法?
目前,该博文使用的方法是启用函数式接口来解决。
关于函数式接口请参考。
在某一个业务场景下,我有这样一个需求,就是以 netty
为基础,构建一个 socket
服务器,然后定时向某一具体的端口转发数据。并且,要把该项目打包成一个 jar
包,对外只暴漏一个开启方法。
我的启动方法如下
Server.build("0.0.0.0",7777,data,50).run();
其中
7777
- 端口
data
- 传递的数据
50
- 定时发送频率
这里面就是一个问题,data
的变化性太大,每个人的业务场景不同,只是通过参数传递,可扩展性太差了。
我来简单的写一下业务场景。具体的实现就不写了,只写一个大概的逻辑。
1 | public class Server{ |
如果想要扩展性更好,需要使用接口。这里选用了 Consumer
接口。
1 | public class Server{ |
Sender
通过实现接口的方法,可以自己自主的转发的逻辑。