Módulo III Padrões GOF: Bridge
|
|
- Lucas de Lacerda Aires
- 6 Há anos
- Visualizações:
Transcrição
1 Módulo III Padrões GOF: Professores Eduardo Bezerra Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões GOF Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 2 1
2 Bibliografia Eric Gamma, et ali, Padrões de Projeto, Ed Bookman Martin Fowler, Analysis Patterns - Reusable Object Models, Addison-Wesley,1997 Martin Fowler, Refatoração - Aperfeiçoando o projeto de código existente, Ed Bookman Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 3 Livros Core Java 2, Cay S. Horstmann, Gary Cornell Volume 1 (Fundamentos) Volume 2 (Características Avançadas) Java: Como Programar, Deitel & Deitel Thinking in Patterns with JAVA, Bruce Eckel Gratuito. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 4 2
3 POO-Java Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 5 Intenção: desacoplar uma abstração de sua implementação de tal forma que a implementação possa ser facilmente trocada. Solução: encapsular os detalhes de implementação em um objeto que é um componente da abstração Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 6 3
4 Considere a construção de um módulo para desenhar figuras. Considere que há duas classes externas de desenho a serem utilizadas: DP1 e DP2 Primeira versão: somente retângulos devem ser desenhados. Solução: Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 7 Suponha agora, o seguintes novos requisitos: As classes externas agora desenham círculos. Portanto, nosso módulo de desenho deve também ter a possibilidade de desenhar círculos. Além disso, o cliente do nosso módulo de desenho não precisa saber a diferença entre um retângulo e um círculo. Solução: Criamos uma classe abstrata Shape, e fazemos com que ela seja superclasse tanto de Rectangle quanto de Circle. O cliente agora se comunica com objetos Shape. Sendo assim, temos uma nova solução, apresentada a seguir... Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 8 4
5 Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 9 Infelizmente, a solução da figura anterior introduz alguns problemas: O que acontece se preciso dar suporte a um novo programa de desenho? E se um novo tipo de Figura (Shape) tiver que ser adicionado? O que aconteceria com a complexidade de manutenção neste módulo quando a quantidade de tipos de figura e de módulos externos de desenho chegasse à cada das dezenas? Resposta: explosão de classes. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 10 5
6 A explosão de classes surge porque, nesta solução, a abstração (ou seja, os tipos de Shape) e a implementação (os programas de desenho) estão fortemente acoplados. i.e., cada tipo de figura (abstração) deve saber que tipo de módulo externo (implementação) ele deve utilizar. Precisamos de um modo de separar (desacoplar) as variações na abstração das variações na implementação, de tal forma que o número de classes cresça somente linearmente. Esta é exatamente a intenção (objetivo) do padrão. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 11 Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 12 6
7 (estrutura) Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 13 (exemplo) Java Swing possui diversos look and feels. Objetos JFrame, JButton, etc. possuem um componente interno (peer) que é construído para com um look and feel particular. No entanto, clientes (programadores) somente precisam interagir com JFrame, JButton, etc. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 14 7
8 (exemplo) O método UIManager.setLookAndFeel define a fábrica concreta para produtos do Windows. WindowsLookAndFeel DefaultLookAndFeel Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 15 (exemplo) Exemplo: usando o padrão para abstrair o driver específico de banco de dados. JDBC imp JDBC Implementation MySQL JDBC Driver Oracle JDBC Driver Postgress JDBC Driver Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 16 8
9 (aplicabilidade) Aplicabilidade O padrão éútil quando se tem uma abstração que tem diferentes implementações. Este padrão permite que a abstração e a sua implementação variem independentemente. Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 17 9
Módulo III Padrões GOF: Iterator
Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões
Leia maisModulo I Princípios e Padrões de Projeto de SW em Java
Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br
Leia maisMódulo I Princípios e Padrões de Projeto de SW em Java
Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br
Leia maisMódulo III Padrões GOF
Módulo III Padrões GOF Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Introdução aos
Leia maisModulo II Tópicos em Java - Ant
Modulo II Tópicos em Java - Ant Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo II - Tópicos em JAVA - Ant Construção de Aplicações Java com Apache
Leia maisMódulo III Padrões GOF-VI: MVC
Módulo III Padrões GOF-VI: MVC Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões
Leia maisModulo II Padrões GRASP
Modulo II Padrões GRASP Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões de Projeto
Leia maisUniversidade Federal de Uberlândia
Universidade Federal de Uberlândia Faculdade de Computação Disciplina: POO1 Prof. Fabiano Dorça Classes e métodos abstratos É impossível instanciar objetos a partir de classes abstratas. Classes abstratas
Leia maisModulo II Tópicos em Java - Extra
Modulo II Tópicos em Java - Extra Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo II - Tópicos em JAVA - Extra Logging Asserções Classe java.lang.object
Leia maisCURSO: Ciência da Computação. Período Letivo 2 sem/2008 C.H. Teórica 40. Série 4ª Série C.H. Prática 40. Periodo Não definido C.H.
PLANO DE ENSINO E APRENDIZAGEM Unidades: 1) Centro Universitário Anhanguera Leme - Leme 2) Centro Universitário Ibero Americano Brigadeiro - 3) Faculdade Anhanguera de Piracicaba - 4) Faculdade Anhanguera
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Universidade Federal de Uberlândia Prof. Fabiano Dorça - O que é um paradigma? É uma forma de abordar um problema, segundo um conjunto de procedimentos, valores ou conceitos
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 11 Padrões GoF (Bridge e Decorator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS IV
Código: 7141 Disciplina: PROGRAMAÇÃO ORIENTADA A OBJETOS IV Período: 8 Carga Horária: 60h C.H. Teórica: 0h C.H. Prática: 60h Créditos: 4 Ementa: Implementação dos conceitos fundamentais da orientação a
Leia maisPlano de Ensino PROGRAMAÇÃO ORIENTADA A OBJETOS
Plano de Ensino PROGRAMAÇÃO ORIENTADA A OBJETOS Título PE - Programação Orientada a Objetos Código da disciplina SIA CCT0079 16 Número de semanas de aula 6 Número de créditos Quantidade total de horas
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Identificação: Disciplina: INE5645 - Programação Paralela e Distribuída Carga horária: 72 horas-aula Teóricas: 36 Práticas: 36 Período: 2º semestre de 2014 (em
Leia maisMódulo IVa - Servlets
Módulo IVa - Servlets Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Módulo IVa Servlets Overview Servlets e JSP Ciclo de Vida HTTP Servlets Gerenciamento
Leia maisOrientação a Objetos (OO)
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 04 APRESENTAÇÃO: Hoje vamos discutir os conceitos de Orientação a Objetos.
Leia maisPLANO DE ENSINO CURSO: BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
CURSO: BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO I Matriz Curricular Criação: 2009_1 Atualização: 201_1 Carga Horária 80 horas aulas OBJETIVOS COMPETÊNCIAS GENÉRICAS
Leia maisDe uma forma ampla, o profissional egresso deverá ser capaz de desempenhar as seguintes funções:
PLANO DE ENSINO 1. Identificação Curso: Tecnologia em Desenvolvimento de Software Disciplina: Linguagem de Programação Orientada a Objetos Professor: Msc. Tiago Eugenio de Melo CPF: Regime de Trabalho:
Leia maisMódulo III Introdução a XML
Módulo III Introdução a XML Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo III XML SGML - Standard Generalized Markup Language XML - Extensible Markup
Leia maisProgramação orientada a objetos
J100 com Programação orientada a objetos TM SE Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos Este curso tem como objetivo iniciá-lo em Java... mas não apenas isto Visa também a ajudá-lo
Leia maisPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho
Leia maisPadrões de Projeto. Parte 1. Prof. Fellipe Aleixo
Padrões de Projeto Parte 1 Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Padrões de Projeto de Software OO Também conhecidos como Padrões de Projeto de Software OO ou simplesmente como Padrões A Inspiração
Leia maisDIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA
DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA836 DISCIPLINA: PADRÕES E FRAMEWORKS CARGA HORÁRIA: 60h EMENTA: Padrões e anti-padrões
Leia maisPLANO DE ENSINO CURSO: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS. DISCIPLINA: Programação Orientada a Objetos
CURSO: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: Programação Orientada a Objetos Matriz Curricular Criação: 009_ Atualização: 04_ Carga Horária 80 horas aulas EMENTA Conceitos e evolução
Leia maisMódulo III Camada de Persistência
Módulo III Camada de Persistência Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo III Camada de Persistência Persistência de Objetos Mecanismo de
Leia maisDesenho e documentação de arquitectura de software e de aplicações empresariais
Desenho e documentação de arquitectura de software e de aplicações empresariais João Pascoal Faria Laboratório de Engenharia de Software 10 de Novembro de 2003 1 Definição de arquitectura de software Arquitectura
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Engenharia Eletrônica MATRIZ FUNDAMENTAÇÃO LEGAL (Resolução do COEPP que aprovou a matriz curricular
Leia maisModulo II Técnicas para desenvolvimento de Software Ágil
Modulo II Técnicas para desenvolvimento de Software Ágil Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming,
Leia maisAula 1: Apresentação, Computação Corporativa
Aula 1: Apresentação, Computação Corporativa Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS
Leia maisMódulo III Arquitetura em Camadas
Módulo III Arquitetura em Camadas Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Módulo III Camadas de Software April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br
Leia maisRoteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos
Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich paulovic@icmc.usp.br
Leia maisMódulo II Modelo MVP
Módulo II Modelo MVP Prof. Ismael H F Santos April 08 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Referências (livros) April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2 1 Referências
Leia maisOrientação a Objetos Interfaces
Orientação a Objetos Interfaces Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos
Leia maisUNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014
Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade
Leia maisUniversidade Federal de Minas Gerais Colégio Técnico Plano de Ensino
Disciplina: Carga horária total: Universidade Federal de Minas Gerais Plano de Ensino Tecnologias de Programação Ano: 2015 Curso: Informática Regime: anual Série: 3o ano Observação: Carga Horária Semanal
Leia maisLinguagem de Programação Orientada a Objeto Abstração - Encapsulamento
Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Herança e Polimorfismo Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos
Leia maisProgramação II. Cassio Diego
Programação II Cassio Diego 1 Aula de hoje UNIDADE 1 1. Criação de interfaces gráficas usando as JFC/Swing 1.1. Introdução (revisão de orientação a objetos) 1.2. Hierarquia de classes 1.3. Modelos de desenvolvimento
Leia maisUNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018
Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade
Leia maisLógica de Programação Estruturada LPE 01 Estrutura Sequencial Parte III
Lógica de Programação Estruturada LPE 01 Estrutura Sequencial Parte III Prof. Msc Wanderley Gonçalves Freitas Wanderley.unip@gmail.com www.professor.wanderley.nom.br Aritméticos (+, -, *, /, ** ou ^)»
Leia maisPOO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Editor gráfico Vamos fazer um programa simples para desenho e manipulação de figuras geométricas: um nano-sketchpad
Leia maisProgramação Estruturada Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisAcadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann
Acadêmico: Samuel Y. Deschamps Orientador: Prof. Jacques R. Heckmann Roteiro Introdução Problema a ser resolvido e objetivos Fundamentação Teórica ORM, RTTI, Custom Attributes, Nullable Desenvolvimento
Leia maisInterface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates
Interface Gráfica Disciplina: Desenvolvimento de Sistemas Professor: Thiago Silva Prates Interface Gráfica Interface Gráfica com Usuário (do inglês, Graphical User Interface GUI) apresenta um mecanismo
Leia maisProgramação III 2016/1
Programação III 2016/1 Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Antes de mais
Leia maisSoluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.
Padrões de Projeto O que são? Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos. Livros Design Patterns: Elements of Reusable Object-
Leia maisProgramação Orientada a Objetos II
Programação Orientada a Objetos II Interfaces Gráficas Componentes Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Ementa Introdução ao Desenvolvimento de Interfaces Gráficas Herança
Leia maisIV. CONTEÚDO PROGRAMÁTICO
I IDENTIFICAÇÃO CURSO: Ciência da Computação DISCIPLINA: Prática de Programação Orientada a objetos CARGA HORÁRIA SEMESTRAL: 40 h/a PROF. RESPONSÁVEL: Míriam de Souza Monteiro II. EMENTA Classes e objetos.
Leia maisSID - Sistema Interativo Distribuído
SID - Sistema Interativo Distribuído Proposta de projeto Sistemas de Objetos Distribuídos Prof.: Fabio Kon IME/USP Maio 2002 Aluno: OBJETIVOS DESTE DOCUMENTO...1 OBJETIVOS DO PROJETO...1 FUNCIONALIDADES
Leia maisIntrodução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
Leia maisAula Inicial. c Professores de ALPRO I 08/2010. Faculdade de Informática PUCRS. ALPRO I (FACIN) Aula Inicial 08/2010 1 / 23
Aula Inicial c Professores de ALPRO I Faculdade de Informática PUCRS 08/2010 ALPRO I (FACIN) Aula Inicial 08/2010 1 / 23 Nota Este material não pode ser reproduzido ou utilizado de forma parcial sem a
Leia maisTópicos Especiais em Sistemas de Telecomunicações IV
Sumário Tópicos Especiais em Sistemas de Telecomunicações IV Modelagem de Sistemas de Software Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto
Leia maisPadrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson
Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos
Leia maisPorquê PADRÕES? - Exemplo
Porquê PADRÕES? - Exemplo Problema: extrair informação de um sistema CAD/CAM para um sistema pericial Sistema pericial controla a produção de uma peça Sistema pericial tem vida mais longa do que CAD/CAM
Leia maisPLANO DE ENSINO 2016
Nome do Curso: Sistemas de Informação Nome da Disciplina: PROGRAMAÇÃO II Série: 3 Nome Professor (a): Guiliano Rangel Alves Curso de vinculação do professor (a): Sistemas de Informação Código: Horas-aula/
Leia mais