gpt4 book ai didi

java - 帮助正确设计通用套接字服务器

转载 作者:行者123 更新时间:2023-12-01 16:03:19 26 4
gpt4 key购买 nike

我在 java 中创建了一个通用的“SocketServer”类,它采用以下参数:字符串地址,int端口,类socketProtocol,字符串加密类型,int backlogSize

基本上,我希望其他开发人员能够在他们的项目中实例化此类,并为加密、积压、地址、端口设置一些简单的选项。此时他们必须设计协议(protocol)。 SocketProtocol 是一个启用 sendMessage 和 receiveMessage(以及其他一些)的接口(interface)。

此时,该类的用户应该只实现 SocketProtocol 并将该类(即 MySocketProto.class)传递给 SocketServer 实例,该实例将通过 .newInstance() 为每个传入连接实例化协议(protocol)的副本;

这有道理吗?有没有更简单的方法来建立这种类型的功能?我不喜欢将类类型传递给服务器的想法,这看起来很奇怪。

谢谢大家,克里斯

最佳答案

我会使用Factory pattern在这个情况下。链接的维基百科示例有点冗长,但它可以非常简单:

public interface ISocketProtocolFactory {
ISocketProtocol buildProtocol();
}

然后,您的 SocketServer 构造函数将获取一个实现 ISocketProtocolFactory 的实例,并在运行过程中向其请求新的 ISocketProtocol

这将为您的用户在构建 ISocketProtocol 实例时提供更大的灵 active ,注意使用类参数的“肮脏”。

关于java - 帮助正确设计通用套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com