Cliente

INTERFAZ IComponenteCliente
La implementan las clases JuegoAbstracto y Chat. Contiene los métodos:

void aceptarMensaje(Object mensaje, String comando): sirve para pasar un mensaje desde el módulo de comunicaciones al módulo de Chat o al Juego.

JPanel getPanel(): devuelve el panel del Chat o del Juego.

INTERFAZ IModuloComunicaciones
La implementa el Modulo de Comunicaciones. Contiene los métodos:

void enviarMensaje(Object mensaje, String comando, int protocolo): pasa un mensaje al módulo de chat o al juego, dependiendo del protocolo.

INTERFAZ ICliente
La implementa la clase Cliente. Contiene el siguiente método:

void partidaCreada(int idPartida): cuando la partida está creada, lo confirma creando el nuevo Juego y el Chat y coloca sus interfaces gráficas en los paneles correspondientes.

CLASE ModuloComunicaciones
Sirve como una central de correos entre el servidor y el cliente, de tal forma que sea el puente entre ambos.
Tienen un módulo de Chat y un Juego para comunicarse con ellos, un reconstructor de mensajes para poder interpretar los mensajes que le envía el servidor. También dispone de atributos para la comunicación por sockets con el servidor y un booleano para indicar si el cliente es identificado por el servidor al conectarse a él.
Implementa la interfaz IModuloComunicaciones.
Métodos que implementa:

void identificar(String id): envía un mensaje al servidor para que identifique al usuario con identificador ‘id’.

boolean estaIdentificado(): devuelve el valor del atributo _estaIdentificado.

void enviarMensaje(Mensaje mensaje): envía un mensaje al servidor.

void setModuloChat(IComponenteCliente comp): establece el módulo de chat como ‘comp’.

void setModuloJuego(IComponenteCliente comp): establece el módulo de juego como ‘comp’.

CLASE Cliente

El cliente es la representación de un usuario. Es un applet que se ejecuta en la máquina del usuario. Esta clase se encargará de cargar los distintos módulos, como son el creador de partidas cuando no hay ninguna creada aún, crear el Chat y cargar el Juego. También se encarga de crear un módulo de comunicaciones con el servidor. Implementa la interfaz ICliente.
Dispone de varios JPanel en los que se cargaran las partes gráficas del juego y el Chat, así como atributos para identificar al usuario, su contraseña y los identificadores de juego y partida.
Métodos:

void init(): se encarga de obtener los parámetros que identifican al usuario, su contraseña, la partida y el juego, crea el módulo de comunicaciones con el servidor, identifica al usuario y llama a ‘partidaCreada()’.

void partidaCreada(): ver la interfaz ICliente.