advertisement

Padrão Observador (Orientação à Objetos)

100 %
0 %
advertisement
Information about Padrão Observador (Orientação à Objetos)

Published on May 15, 2008

Author: josetelesmaciel

Source: slideshare.net

Description

Slide feito para explicar o que é o Padrão Observer.
advertisement

TUDO QUE VOCÊ QUERIA SABER SOBRE PADRÃO OBSERVADOR MAS TINHA VERGONHA DE PRESTAR ATENÇÃO NA AULA. Grupo: Flávio Lúcio José Teles Thiago Tadeu

Bem um Padrão de Projeto, ou Design Pattern é uma maneira já reconhecida de resolver um problema de programação. Estas soluções foram disponibilizadas por outros desenvolvedores e colocadas no formato de Padrões de Projeto , um deles é o Observer.

Inicialmente ele ajuda a criar um projeto flexível e que possa ser mantido, ou seja, satisfaz o terceiro quesito para que tenhamos um grande software. Ele vai te ajudar a evitar POG desde o começo do projeto.

“ O padrão observer define a dependência um-para-muitos entre objetos para que quando um objeto mude de estado todos os seus dependentes sejam avisados e atualizados automaticamente” Ou seja, imagine que neste padrão existirá uma classe com a responsabilidade de saber de tudo que acontece e avisar todo mundo.

Imaginamos algum sistema no qual ATUALIZAÇÃO seria um dos pontos importantes, e chegamos a conclusão que um sistema desenvolvido para um Hospital é a melhor forma de explicar e aplicar o Padrão Observador com simplicidade.

A intenção desse software é receber informações de aparelho ligados a um paciente e informar quaisquer alterações automaticamente para um médico ou responsável. Mas parando de conversa, o que nos interessa de verdade são “Especificações” e “Implementação” Vamos analisar as classes desse nosso projeto:

 

E então, caro estudante, quantas interfaces você conseguiu contar no nosso diagrama? Três, certo? <<Interfaces>> Subject Observer DisplayElement Observe que sendo interfaces elas simplesmente não possuem atributos e seus métodos não tem escopo algum, no entanto, são estas 3 classes que caracterizam o Padrão Observador.

E então, caro estudante, quantas interfaces você conseguiu contar no nosso diagrama? Três, certo?

<<Interfaces>>

Subject

Observer

DisplayElement

Observe que sendo interfaces elas simplesmente não possuem atributos e seus métodos não tem escopo algum, no entanto, são estas 3 classes que caracterizam o Padrão Observador.

Observe nossa classe Observer (hehe), o método update será responsável pela atualização de 3 variáveis, temperatura, batimentos e Pressão. public interface Observer { public void update( float Temperatura, int pBatimentos, float pPressao); } As classes que deverão implementar Observer são: bipMedico e CondicoesAtuais

Esta interface possui apenas o método display() , que obriga as classes que herdam de DisplayElement a codificarem este método. O método Display será usado para a saída de dados. public interface DisplayElement { public void display(); }

A classe bipMedico é responsável por implementar a interface Observer como também a Interface Display Element. Ao implementar Observer ela atualiza os dados de Pressão, Batimentos e Temperatura: public void update ( float pTemperatura, int pBatimentos, float pPressao) { ultimaPressao = pressaoAtual ; pressaoAtual =pPressao; ultimoBatimento = batimentoAtual ; batimentoAtual = pBatimentos; ultimaTemperatura = temperaturaAtual ; temperaturaAtual = pTemperatura; display(); } Logo depois de fazer esta atualização ela chama o método display() que imprime os resultados.

Método display() : // Somente mostrando a implementação para Pressão: public void display() { System. out.print(&quot;Pressão: &quot;); if (pressaoAtual > 15.12f) { System. out.println(&quot;A Pressão está alta! &quot;); } else if (pressaoAtual < 9.7f) { System. out.println(&quot;Pressão baixa &quot;); } else { System. out.println(&quot;Pressão sob Controle &quot;); }

A classe CondicoesAtuais será a responsável por guardar o estado atual do nosso sistema e de suas três variáveis, Pressão, Temperatura e Batimentos, sendo assim, ela também implementa a interface Observer e o método update (Isso é polimorfismo) : Ela também receberá um objeto chamado Paciente do tipo Subject (e este Paciente chamará um método para adicionar um observador para ele (falaremos da classe Subject mais a frente): Implementação (próximo slide):

 

A nossa classe de teste posteriormente irá usar as informações aqui contidas.

Esta interface representa o sujeito dentro do nosso sistema: public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o); public void notifyObservers(); } Seus métodos servem para registrar um novo observador, removê-lo e fazer notificação para o sistema. Esta interface é implementada pela classe Paciente !

Inicialmente ela conhece uma Lista de Observadores (para cada novo evento em que um Observador precisa fazer uma notificação) E ela também possui o método setModificacoes() que é por onde entrarão os dados do Paciente na nossa classe teste, após a entrada de dados este método chama outro método que é responsável por notificar o sistema todo do novo status de suas variáveis.

 

 

Add a comment

Related pages

Orientacao a Objetos, Padrão Observer.

Orientacao a Objetos, Padrão Observer. Índice dos ... venho até vcs para que me ajudem a entender esse padrão ao qual estou estudando através da ...
Read more

Padrões de Projeto de Software Orientado a Objetos

Mas acabaram baseando o livro em C++ para que o impacto junto à ... (87)) - padrão de Criação de objetos Fábrica ... Observador , Estratégia, etc ...
Read more

Padrão de projeto de software – Wikipédia, a ...

... ou padrão de projeto ... relacionados à criação de objetos; ... PHP Programando com Orientação a Objetos: ...
Read more

Padrões de Projeto de Software Orientado a Objetos

Orientado a Objetos 1 ... Fachadas, Observador, Estratégia, etc. ... que o impacto junto à comunidade de C fosse maior.
Read more

Conceitos de Orientação a Objetos - artigos TechNet ...

Este artigo traz alguns conceitos sobre orientação objeto descrevendo de ... o padrão de qualidade exige a ... ligado à hereditariedade das ...
Read more

orientação a objetos - Como funciona o construtor ...

Como é o construtor padrão Java ... no corpo a não ser uma referência à classe ... com a tag java orientação-a-objetos classes método construtor ...
Read more

Programação orientada a objetos: construtores de objetos

... um construtor padrão, que não recebe argumentos, ... o objeto já terá à disposição as funcionalidades mínimas necessárias, ...
Read more