Códigos em Java, que aplicam padrões de projeto, que fiz ao longo da disciplina de Projeto Orientado à Objetos
Descrição dos exercícios para cada padrão de projeto:
Escreva uma classe que permita que o cliente VectorDraw, que já usa a classe Shape, use as operações de RasterBox (e Coords) para obter os mesmos dados.
Implemente o padrão Composite para representar os componentes de uma máquina, utilizando as classe MachineComposite, MachineComponent e Machine.
Escreva uma classe executável (com main) que obtenha três referências do objeto que você escreveu no exercício do Adapter e verifique que realmente se tratam da mesma referência.
Implemente o padrão Mediator para 3 pessoas que escolherão para seu texto uma cor das seguintes cores: vermelho, azul e verde. Tendo escolhido uma cor por meio de uma mensagem, o mediador deve retornar o texto nas outras duas cores não escolhidas.
Implementação do padrão Proxy para as classes Cliente, SujeitoReal, Intermediario e Sujeito.
Escreva uma aplicação em Java que receba um texto ou arquivo de texto da linha de comando.
- O texto deve ser lido e estatísticas devem ser impressas sobre: a) o número de espaços encontrados, b) o número de letras 'a' e c) o número de pontos.
- Use Chain of Responsibility e faça com que cada tipo de caractere seja tratado por um elo diferente da corrente.
Implemente uma aplicação que imprima aleatoriamente 10 números de 10 algarismos.
- Cada algarismo deve ser uma instancia do objeto Algarismo que possui o numero 1, 2, 3, etc. como membro imutável.
- Use Flyweight para que objetos que representam o mesmo algarismo sejam reutilizados.
Uma aplicação precisa construir objetos Pessoa, e Empresa. Para isto, precisa ler dados de um banco para cada produto.
- Para construir uma Pessoa é preciso obter nome e identidade. Apenas se os dois forem lidos a pessoa pode ser criada.
Implemente uma aplicação que constrói Pontos (x, y), Circulos (Ponto, raio), Retangulos (Ponto, Ponto), Triangulos (Ponto, Ponto, Ponto) e use uma fábrica abstrata para controlar a criação de todos os objetos.
Implemente, na fábrica de Figuras (capítulos anteriores), métodos createXXX() que aceitem um objeto como argumento e retornem um clone.
- Implemente o método clone() em todos os objetos.
- Garanta que a cópia realmente copia todo o estado do objeto.
Escreva uma aplicação referente aos conceitos do padrão Memento para a classe Ponto.
16.1 Escreva um Comparator para ordenar palavras pela última letra. Escreva uma aplicação que use Arrays.sort() para testar a aplicação.
16.2 Mostre como você poderia escrever um template method para gerar uma classe Java genérica (contendo nome, extends, métodos etc.).
Escreva uma aplicação referente aos conceitos do padrão State para o paradoxo do Gato de Schrödinger, tendo os seguintes estados: vivo, morto e quântico.
Crie um objeto simples que armazene um texto que possa ser recuperado com um método getTexto(). Crie decoradores que retornem o texto: a) em caixa-alta, b) invertido e c) cercado por tags e . Teste os decoradores individualmente e em cascata.