Observer Mantendo seus objetos atualizados Daniel Roloff Carlos Machado Enzo Zuccolotto Luiz Felipe Trevisan Rafael Holtz.

Slides:



Advertisements
Apresentações semelhantes
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Advertisements

Diagrama de Classes.
Orientação a Objetos: Encapsulamento e Classificação
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA APLICADA DISCIPLINA DE SISTEMA ORIENTADOS A OBJETOS PROGRAMAÇÃO ORIENTADA.
SERIALIZER Equipe: Aderly Stresser Borges Carlos Magno Nunes.
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Observer Mantendo seus objetos atualizados
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Classes e objetos P. O. O. Prof. Grace.
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Definição É um padrão de desenvolvimento utilizado na orientação a objeto quando queremos manter baixo o nível de acoplamento entre diferentes partes.
Professor: Hyggo Almeida
Revisão POO Profa. Cintia Carvalho Oliveira
Introdução a programação (if669cc)
Aula prática 13 Orientação a Objetos – C++ Parte 1
Linguagens de Programação
Nazareno Andrade (baseado no material de Hyggo Almeida)
Linguagens Orientadas a Objeto
Programação I Aula 2 (Métodos)
Curso de Básico de Reservas e Tarifas - Amadeus Vista 3.1.
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner
if669 - Introdução à Programação
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Acoplamento e Coesão Modelagem e Programação Orientada a Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada à Objetos
Aula Prática 4 Monitoria IP/CC (~if669).
Decorator POO - Avançado.
Padrões de Projeto.
POO II JEAN CARLO MENDES
Padrões de Interação com o Usuário
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Generalização e herança Agregação e composição
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
STATE.
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
1 Padrões: Bridge (p. 151) Objetivo: separar uma abstração de sua implementação Sinônimos: Handle/Body.
2 – Revisão de Programação Orientada a Objetos
Programação para internet através de Applet Java
20/04/2017 Orientação a Objetos 1 1.
Relacionamentos UML e Polimorfismo
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Equipe Danilo Miguel Elias Lacerda Felipe Riguete Henderson Garcia
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Padrão de Projeto Façade Tiago Andrade Ronaldo Ribeiro Edvaldo Melo
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Padrões de Projeto Aula 4 – Padrão Observer. PADRÃO OBSERVER Como manter objetos atualizados quando algo importante ocorre? Padrões de Projeto - Observer.
O android traz suporta nativo ao bando de dados SQLite Open-source Por padrão, os bancos de dados podem ser acessados apenas pelas aplicações.
Aula 5 – Padrão Decorator
Aula 6 – Padrão Factory Method
Padrões de Projeto Aula 10 – Padrão Façade.
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Princípios de design SOLID Padrões de Projeto Orientados a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Padrões de Projeto Aula 5 – Padrão Decorator 1. QuickReview: Observer Definição: Quando usar? Tipo de padrão? Como? 2.
Padrões de Projeto Aula 12 – Padrão Adapter. PADRÃO ADAPTER Soluções simples para problemas reais! 2.
Padrões de Projeto Aula 10 – Padrão Façade. Façade, em francês, significa fachada ◦ Fachada de prédio 2.
Transcrição da apresentação:

Observer Mantendo seus objetos atualizados Daniel Roloff Carlos Machado Enzo Zuccolotto Luiz Felipe Trevisan Rafael Holtz

Imagine… Uma editora começa a publicar jornais; Você assina-o e todo dia recebe os mesmos; Você cancela a assinatura quando não quizer mais recebê-los e eles param de chegar; A editora entrega jornais para pessoas, hotéis, companhias aéreas e outras empresas fazem e cancelam assinaturas constantemente. ESTE É O OBSERVER!

Definições 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. Utilizando baixo encapsulamento!

Definições Padrão Comportamental, isto é, define o comportamento dos objetos. Não permite que a estrutura interna do obejto que está se comunicando seja exposta. Swing utiliza muito este padrão, assim como muitos frameworks GUI. Também será encontrado em outros lugares como JavaBeans e RMI.

Diagrama de Classes Contêm o estado e o controla O método update é chamado quando o estado de Subject é alterado

Java Java tem uma implementação própria; É necessário estender a superclasse java.util.Observable (Péssimo!) Possui um método setChanged() utilizado para informar que deve ser enviado o estado para as demais classes. Útil para quando o estado varia muito e queremos acionar os observadores só em determinados casos.

Exemplo Vamos ao código! Try it!

Desvantagens A necessidade de extender uma classe na implementação default do Java Não é possível nem usar composição já que o método setChanged é privado Deve-se otimizar as notificações para que não sobrecarregar os observadores

Bibliografia Padrões de Projeto – Use a Cabeça – Eric Freeman e Elisabeth Freeman Spring Loaded Observer Pattern – Scott Priolo tss?l=SpringLoadedObserverPattern

Dúvidas? Dúvidas?