Esse exercício envolve o uso do padrão de projeto Observer. Para essa questão, são fornecidos os códigos fonte de duas classes (ambas subclasses de JFrame): JPerpectivaTextualVotacao e JPerspectivaGraficaVotacao. Além disso, também é fornecida uma classe (de nome Main) que exibe objetos das duas primeiras classes. A classe JPerpectivaTextualVotacao permite visualizar alterar as quantidade de votos atribuídos a candidatos em uma votação. (Por simplicidade, consideramos uma quantidade constante de candidatos: quatro.) A classe JPerspectivaGraficaVotacao permite visualizar o resultado da votação através de um gráfico de pizza. O que você deve fazer é modificar a aplicação fornecida. A modificação deve permitir que, quando o usuário modificar a quantidade de votos de algum candidato (no formulário correspondente a um objeto da classe JPerpectivaTextualVotacao), o gráfico de pizza apresentado deve ser automaticamente atualizado. Para implementar isso, você deve criar uma classe de nome Votacao. Essa classe deve ser o sujeito (subject) na terminologia do padrão Observer. Essa classe deve armazenar a quantidades de votos de cada um dos quatro candidatos e deve prover métodos seletores e modificadores (get/set) adequados para tal. Além disso, as classes JPerpectivaTextualVotacao e JPerspectivaGraficaVotacao devem ser observadores (observers). Dica: você pode utilizar a classe Observable e a interface Observer, ambas disponíveis na API, Java para implementar esse programa. Se você fizer isso, a classe Votacao deve ser subclasse de Observable, e as classes JPerpectivaTextualVotacao e JPerspectivaGraficaVotacao devem implementar a interface Observer.