Implementación Chat con Sockets

Teoría para hacerlo: Creamos una clase Hilos que herede de Thread que contenga un socket

Spaguetti Code:

publica class Hilos extends Thread{
 private Socket socket;
 private List<Hilos> allclients;

 public Hilos(Socket socket, List<Hilos> allClients){
  this.socket = socket
  this.allClients = allClients
 }

 public void ejecutarHastaCadenaSalir(){
  try{
   Socket socket = new Socket("127.0.0.1", Servidor.PUERTO);
   BufferedRea
  }
 }

}