Foram aplicadas as seguintes refabricações:
Localização: Classe SpamFilter, no método getNextmesage.
Issue: Utilização demasiadas vezes a expessão message.getClientNickname(), o qual pode diminuir a legibilidade do código.
Refabricação: Extrair uma variável através do Extract Local Variable à expressão message.getClientNickname() e desse modo criar-se a variável local clientNickname.
Localização: Classe ClientsHandler, no método run().
Issue: Um método extenso com muitas exceções podem levar à sua difícil compreensão.
Refabricação: Extrair um novo método através do Extract Method criando o método notInterrupted().
Localização: Classe SpamFilter, método spamMessage.
Issue: Método demasiado longo. Reparti-lo em blocos mais pequenos pode torná-lo mais legível.
Refabricação: Extrair um novo método através do Extract Method criando o método samePayload.
Diff: