Padrões de Projeto: parte 3 de 3

Olá pessoal !

Hoje continuaremos com nossa revisão de Padrões de Projeto, falando sobre os padrões Comportamentais.

O que são os padrões Comportamentais?


São os padrões que estão preocupados com os algoritmos e as atribuições de responsabilidade entre objetos. Descrevem não só os padrões entre objetos ou classes, mas também os padrões de comunicação entre eles.  Estes padrões caracterizam um complexo fluxo de controle que é difícil de seguir em tempo de execução. Eles transportam sua atenção para longe do fluxo de controle e lhe permite concentrar-se apenas no modo como os objetos estão interconectados.

Vamos analisar os principais padrões comportamentais.

Strategy

· Define uma família de algoritmos, encapsula cada um, e faz deles intercambiáveis. Strategy permite que o algoritmo varie independentemente de clentes que os usam.

· Use Strategy quando:

o Várias classes relacionadas diferem apenas em seus comportamentos. Strategy proporciona um modo de configurar uma classe com um de muitos comportamentos.

o Você precisa de diferentes variantes de um algoritmo.

o Uma classe define muitos comportamentos, e eles aparecem como múltiplas declarações condicionais nas suas operações. Ao invés de várias condições, mova desvios condicionais relacionados para sua propria classe Strategy.


gof013

Command

· Encapsula uma requisição como um objeto, deixando-o, dessa forma, parametrizar os clientes com diferentes requisições.

· Use o Command quando você quer:

o Parametrizar objetos para realizar alguma ação.

o Especificar, enfileirar e executar requisições em tempos diferentes.

o Suportar undo.

o Suportar transações .

gof021

Observer

· Define uma dependência um-para-muitos entre objetos de forma que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente

· Use o Observer em qualquer uma das seguintes situações:

o Quando uma abstração tem dois aspectos, um dependente do outro. Encapsular esses aspectos em objetos separados permite você variá-los e usá-los independentemente.

o Quando uma mudança em um objeto requer mudanças em outros objetos e você não sabe quantos objetos serão mudados.

o Quando um objeto deve ser capaz de notificar outros objetos sem fazer deduções sobre quem esses objetos são. Em outras palavras, você não quer esses objetos fortemente acoplados.

gof032

Uma das possíveis implementações do padrão Observer é o, já conhecido, padrão MVC, que separa a Visão (interface) do Controlador (negócio)  e Modelo (persistência). Note que o MVC permite fazer justamente o que o Observer prega: encapsular cada aspecto em objetos diferentes separados, de forma que você possa variá-los independentemente.

Template Method

· Define o esqueleto de um algoritmo em uma operação, deferindo alguns passos para as subclasses. Template Method permite que subclasses redefinam certos passos de algum algoritmo sem mudar a estrutura do algoritmo

· O Template Method deve ser usado:

o Para implementar a parte invariante de um algoritmo uma vez e deixar para as subclasses a implementação do comportamento que pode variar

o Quando comportamentos comuns entre subclasses devem ser fatorados e localizados em uma classe comum para evitar duplicação de código

gof041

Com isso, concluímos nosso breve estudo sobre Padrões de Projeto. Agora que você já foi introduzido ao assunto, pratique bastante, fazendo questões – o CESPE costuma cobrá-lo bastante em suas provas, já a FCC raramente aborda-o. Ajuste sua estratégia de estudos de acordo com os seus objetivos.

Próxima semana voltamos, com uma visão sobre Algoritmos e Estrutura de Dados, este sim, um assunto muito cobrado por qualquer organizadora.

Bons estudos!

Nando Pedrosa

Obras do Autor:
– Prova Comentada:  TRT 2 Região (São Paulo – FCC)


»crosslinked«

nandopedrosa

Analista de Finanças e Controle - Ministério da Fazenda/Coordenação de Sistemas Graduação: Universidade Federal de Pernambuco Certificações: ITIL Foundation Certified Java Programmer Certified Java Associate Certified Aprovações: Concurso Ano Cargo Posição Organizadora PBGÁS 2007 Analista de Sistemas 1 FCC SERPRO 2008 Administração de TI 1 CESPE COPERGÁS 2008 Analista de Sistemas 1 UPENET INMETRO 2007 Analista de Sistemas 2 CESPE STN 2008 AFC-TI 2 ESAF STJ 2008 Analista Judiciário 3 CESPE TRF-5 2008 Analista Judiciário 5 FCC TRF-5 2008 Técnico Judiciário 5 FCC TCU 2008 ACE-TI 7 CESPE TJ-PE 2007 Analista Judiciário 11 FCC BNDES 2008 Analista de Sistemas 27 CESGRANRIO

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *