QUESTÃO DISCURSIVA

Instruções a serem seguidas na construção das respostas:
Para responder aos itens desta questão, escreva, apenas, o código completo das classes Jogador e GerenteJogo. Isso inclui o código apresentado no enunciado e o código que fará parte da resposta que deve ser escrita (escreva esse código).
É possível acrescentar o código que quiser nas classes Jogador e GerenteJogo, mas não é permitido suprimir nem modificar as variáveis de instância que fazem parte do código do enunciado. Não é permitido, também, modificar as interfaces Observado e Observador nem acrescentar ao código do enunciado novas classes e/ou interfaces.
Uma empresa disponibiliza um site na Web em que grupos de 3 a 6 pessoas podem jogar partidas de Banco Imobiliário on-line.
O design do servidor do jogo está baseado nos padrões Observer e Singleton. Parte do código Java das classes e das interfaces que compõem o servidor é mostrado a seguir:

Nesse contexto, escreva um código Java que permita implementar os padrões Singleton e Observer, de acordo com a sequência de eventos descrita abaixo.
• Complete as classes GerenteJogo (observado) e Jogador (observador), de modo que um jogador se registre junto ao gerente do jogo, quando o construtor de classe Jogador for executado. Quando receber a solicitaçâo de registro, o observado terá de inserir o observador na lista de observadores (variável jogadores). Esse registro tem de seguir o protocolo relativo ao padrão Singleton.
• Implemente o método do observado que irá permitir que um jogador seja removido da lista de observadores (variável jogadores).