gpt4 book ai didi

Java简化代码

转载 作者:行者123 更新时间:2023-12-01 14:48:32 24 4
gpt4 key购买 nike

我有一个初学者问题:

我有 3 个扩展 Thread 的类。他们做着同样的工作:打开一个 ServerSocket,然后在 while 循环中等待连接。这些类之间的唯一区别是,它们在建立连接时启动特定的线程。我想简化这一点,并让一个类来完成这项工作,即 atm 3 个类正在做的工作。示例中唯一的区别是 SocketThread1、SocketThread2 和 SocketThread3 的调用。

我怎样才能制作 1 个类而不是 3 个类?

示例:

\\class 1

public void run()
{
while(true)
{
Socket s = serversocket.accept();
new SocketThread1(s).start();
}}

\\class 2

public void run()
{
while(true)
{
Socket s = serversocket.accept();
new SocketThread2(s).start();
}


}

\\class 3

public void run()
{
while(true)
{
Socket s = serversocket.accept();
new SocketThread3(s).start();
}

最佳答案

为什么不为 SocketThread 1,2 和 3 实现一个接口(interface)(或父类),然后仅传递该接口(interface)的一个实例并调用其 start() 方法?

编辑:我的意思是这样的:(代码未经测试,应该适应您的要求)

public class SocketThread1 implements SocketThread{...}
public class SocketThread2 implements SocketThread{...}
public class SocketThread3 implements SocketThread{...}
public class YourClass implements Runnable{
private SocketThread thread;
public YourClass(SocketThread thread){
this.thread = thread;
}
public void run()
{
thread.start();
}
}

关于Java简化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132842/

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