MAC 441/5714 - Programação Orientada a Objetos
Aula 19 - 5/6/8
Padrões de Projeto de Software - continuação
State (305) - Behavioral
- slides do Joe (pag. 26)
- quando usamos o State, parece que o objeto "muda de classe" à medida em que seu estado muda.
- exemplo do GoF:
- TCPConnection cujo estado pode ser TCPEstablished, TCPListen ou TCPClosed.
- ver diagrama na pág. 305.
- outro caso de uso são programas para desenhos: HotDraw do Johnson e Unidraw do Vlissides
- ver diagrama na pág. 313.
Façade (185) - Structural
- descrição do Joe é muito sucinta, ver também GoF (185..193)
- exemplo da pág. 186 é o jeito que o compilador do ObjectWorks Smalltalk funciona.
- exemplo do sistema operacional Choices no GoF é bem interessante (pag. 192)
Mediator (273) - Behavioral
- Objetivo: definir um objeto que encapsula dentro de si o modo como um conjunto de objetos interage.
- promove baixo acoplamento fazendo com que os objetos não interajam entre si diretamente.
- o mediador se torna a parte não reutilizável mas todo o resto fica mais reutilizável
- O exemplo do Joe (pag. 50) com InsurancePolicy, Worker e CustomerHistory mediados por um Procedure é muito bom.
- Sem o Procedure, os objetos do domínio teriam que interagir entre si diretamente e o sistema resultante seria bem menos flexível.
- Ajuda a separar um sistema em processos de negócio e em objetos do domínio.
Correção da Prova
Referência básica
Referências online
- slides do curso de padrões dado pelo Joe Yoder no IME em 2003
- Página dos cursos dados pelo Joe Yoder incluindo o vídeo das palestras!
Vários lugares da Web contém uma documentação muito boa sobre os padrões GoF.
Próxima Aula
Aula Anterior
Página de MAC 441/5714
Página do Fabio
Página do DCC