Aplicado o padrão de desenho Builder em birdson...
Descrição dos problemas resolvidos:
LongMethod - birdsong.filter.FilterDecorator
TypeChecking - birdsong.comm.ServerComm
TypeChecking - birdsong.comm.ServerSideMessage
God Class - birdsong.server.OnlineClients
Code smell detetado (God Class) na classe Servidor nas linhas: 16 - public LinkedList<Cliente> clientesOnline = new LinkedList<Cliente>(); 67 - private void processFollowRequest(ServerSideMessage mensagem) 109 - private void BirdsongMessageProcess(ServerSideMessage mensagem) 139 - private void messageClienteConectado(ServerSideMessage mensagem) 165 - private void messageClienteDesconectado(ServerSideMessage mensagem) 192 - private void processUnfollowRequest(ServerSideMessage mensagem) 217 - private boolean verificarUser(String nickName) 221- private Cliente encontrarCliente(String nickName) Solução: Extract Class Foi criada uma nova classe com o nome "OnlineClients" responsável por todos os processos entre os clientes que se connectam e o servidor. A nova classe contém os métodos movidos da classe anterior : - encontrarCliente(String nickName): Permite encontrar um cliente através do seu nickname - processFollowRequest(ServerSideMessage mensagem, ServerComm server): Método que trata do processo Follow - BirdsongMessageProcess(ServerSideMessage mensagem, ServerComm server): Dá a conhecer aos utilizadores que dado cliente está online - processUnfollowRequest(ServerSideMessage mensagem, ServerComm server): Processa mensagens do cliente, do tipo UNFOLLOW - messageClienteDesconectado(ServerSideMessage mensagem, ServerComm server): Trata de um cliente quando este se desconnecta - messageClienteConectado(ServerSideMessage mensagem, ServerComm server): Trata de um cliente quando este se conecta - verificarUser(String nickName): Verifica se não existe um dado cliente
Descrição: https://sourceforge.net/p/es2-2016-e...