Análise e Projeto Orientados por Objetos
|
|
|
- Beatriz Monsanto Escobar
- 7 Há anos
- Visualizações:
Transcrição
1 Análise e Projeto Orientados por Objetos Aula 09 Padrões GoF (Adapter e Composite) Edirlei Soares de Lima <[email protected]>
2 Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton Estruturais: Adapter Bridge Composite Decorator Façade Flyweight Proxy Comportamentais: Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor
3 Adapter Intenção: adaptar um objeto preexistente para uma interface específica com a qual um outro objeto espera se comunicar. Solução: definir uma classe que serve como um adaptador e que age como um intermediário entre o objeto e seus clientes (utilizar herança ou composição). O adaptador traduz comandos do cliente para o fornecedor e os resultados do fornecedor para o cliente. Exemplo: Leitor de cartões de memória;
4 Adapter
5 Adapter Exemplo
6 Adapter Implementação public interface MediaPlayer public void play(string audiotype, String filename); public interface AdvancedMediaPlayer public void playvlc(string filename); public void playmp4(string filename);
7 Adapter Implementação public class VlcPlayer implements public void playvlc(string filename) System.out.println("Playing vlc file. Name: "+ public void playmp4(string filename) //do nothing
8 Adapter Implementação public class Mp4Player implements public void playvlc(string filename) //do public void playmp4(string filename) System.out.println("Playing mp4 file. Name: "+ filename);
9 Adapter Implementação public class MediaAdapter implements MediaPlayer AdvancedMediaPlayer advancedmusicplayer; public MediaAdapter(String audiotype) if(audiotype.equalsignorecase("vlc") ) advancedmusicplayer = new VlcPlayer(); else if (audiotype.equalsignorecase("mp4")) advancedmusicplayer = new public void play(string audiotype, String filename) if(audiotype.equalsignorecase("vlc")) advancedmusicplayer.playvlc(filename); else if(audiotype.equalsignorecase("mp4")) advancedmusicplayer.playmp4(filename);
10 Adapter Implementação public class AudioPlayer implements MediaPlayer MediaAdapter public void play(string audiotype, String filename) if(audiotype.equalsignorecase("mp3")) System.out.println("Playing mp3 file. Name: " + filename); else if(audiotype.equalsignorecase("vlc") audiotype.equalsignorecase("mp4")) mediaadapter = new MediaAdapter(audioType); mediaadapter.play(audiotype, filename); else System.out.println("Invalid media. " + audiotype + " format not supported");
11 Adapter Implementação public static void main(string[] args) AudioPlayer audioplayer = new AudioPlayer(); audioplayer.play("mp3", "beyond the horizon.mp3"); audioplayer.play("mp4", "alone.mp4"); audioplayer.play("vlc", "far far away.vlc"); audioplayer.play("avi", "mind me.avi");
12 Adapter Aplicabilidade Quando se quer usar uma classe já existente e sua interface não combina com a esperada pelo cliente; Quando se quer criar uma classe reutilizável que coopera com classes não relacionadas ou não previstas, isto é, classes que não necessariamente tenham interfaces compatíveis; Quando se necessita usar várias classes existentes, mas é impraticável adaptar através da transformação de suas interfaces para transformá-las em subclasses de uma mesma classe.
13 Composite São comuns as situações onde temos que lidar com uma coleção de elementos estruturada hierarquicamente (em vez coleções "lineares"). Problema: como criar objetos utilizando partes de tal forma que tanto o objeto todo quanto os objetos parte forneçam a mesma interface para os seus clientes? Composições podem cumprir com este requisito e ainda permitir: o tratamento da composição como um todo; ignorar as diferenças entre composições e elementos individuais; a adição transparente de novos tipos a hierarquia;
14 Composite
15 Composite Exemplo
16 Composite Implementação public class Employee private String name; private int salary; private String dept; private List<Employee> subordinates; public Employee(String name, String dept, int sal) this.name = name; this.dept = dept; this.salary = sal; subordinates = new ArrayList<Employee>(); public void add(employee e) subordinates.add(e); public void remove(employee e) subordinates.remove(e); public List<Employee> getsubordinates() return subordinates; public String tostring() return ("Employee :[ Name : " + name + ", salary :" + salary+" ]");
17 Composite Implementação public static void main(string[] args) Employee CEO = new Employee("John","CEO", 30000); Employee headsales = new Employee("Robert","Head Sales", 20000); Employee headmarketing = new Employee("John","Head Marketing", 20000); Employee clerk1 = new Employee("Laura","Marketing", 10000); Employee clerk2 = new Employee("Bob","Marketing", 10000); Employee salesexecutive1 = new Employee("Richard","Sales", 10000); Employee salesexecutive2 = new Employee("Rob","Sales", 10000); CEO.add(headSales); CEO.add(headMarketing); headsales.add(salesexecutive1); headsales.add(salesexecutive2); headmarketing.add(clerk1); headmarketing.add(clerk2); System.out.println(CEO); for (Employee heademployee : CEO.getSubordinates()) System.out.println(headEmployee); for (Employee employee : heademployee.getsubordinates()) System.out.println(employee);
Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões
DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype
Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça. Introdução. Padrões de projeto
Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça Introdução Padrões de projeto Algumas definições... Um padrão de projeto (design pattern) é uma solução geral reutilizável
Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico
Reuso de Software Aula 03 Tópicos da Aula POO e Padrões de Projetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 12 Março 2012 Programação orientada a objetos Reuso de
Padrões de Projeto de Software
Padrões de Projeto de Software Lista de Exercícios AV2-01 Luiz Leão [email protected] http://www.luizleao.com Questão 1 Qual o objetivo dos padrões Comportamentais, segundo o catálogo GOF? Questão 1 Resposta
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 06 Padrões GoF (Factory Method e Abstract Factory) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 07 Padrões GoF (Command e Template Method) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype
Padrões de Projeto de Software
Padrões de Projeto de Software Luiz Leão [email protected] http://www.luizleao.com Introdução O que é? Como descrever? Principais Padrões de Projetos Unidade 2 Padrões GoF PADRÕES CRIAÇÃO Abstract Factory
Mas o que é mesmo Padrão de Projeto?
Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque
Padrões de Design. Padrões de Design. Abstract Factory. Padrões de Design. Padrões de Design Abstract Factory. Abstract Factory.
Escopo Classe Objeto Finalidade Criação Estrutural Comportamental Factory Method Interperter Abstract Factory Builder Prototype Bridge Composite Facade Flyweight Proxy Chain of Responsibility Command Iterator
Padrões contexto problema solução
Padrões Padrões são soluções para problemas específicos que ocorrem de forma recorrente em um determinado contexto que foram identificados a partir da experiência coletiva de desenvolvedores de software.
Programação com Objectos
Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é
Testes com Design Patterns
Helder da Rocha ([email protected]) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?
Programação Orientada a Objetos. Padrões de Projeto
Programação Orientada a Objetos Padrões de Projeto 1 Contexto Desenvolver sistemas reutilizáveis é difícil porque deve-se procurar por: Uma boa decomposição do problema e a abstração correta. Flexibilidade,
b) Adapter, Bridge e Composite. c) Builder, Prototype e Singleton. d) Façade, Command e Decorator. e) Factory Method, Interpreter e Template Method.
1) Considere os diagramas de classes de análise fornecidos nos itens (a) e (b) abaixo, ambos de acordo com a notação da UML. Esses diagramas desejam representar o fato de que uma conta bancária pode estar
Análise e Projeto. Padrões de Análise, Arquitetura e Projeto
Análise e Projeto Padrões de Análise, Arquitetura e Projeto 33 Padrões de Arquitetura Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e seu contexto. Solução: elementos que
O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Revista UNILUS Ensino e Pesquisa v. 13, n. 30, jan./mar. 2016 ISSN 2318-2083 (eletrônico) Claudio Costa Matos Graduando no curso
LEIC-A / MEIC-A 2007/2008 (1º
1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda
Programação Orientada a Objetos. Padrões Comportamentais
Programação Orientada a Objetos Padrões Comportamentais Cristiano Lehrer, M.Sc. Classificação dos Padrões de Projeto Propósito o que o padrão faz: Padrões de criação: abstraem o processo de criação de
Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação
UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Projeto
Prof.ª Esp. Talita Pagani
Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani [email protected] @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design
PADRÕES DE PROJETO DE SOFTWARE
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação PADRÕES DE PROJETO DE SOFTWARE SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre
Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC
Uma Introdução aos Padrões de Projeto com Java Roberto Willrich INE-CTC-UFSC 1 Introdução aos Padrões de Projeto Programação Introdução Motivação, Definição, Características, Histórico Descrição de um
Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 23 Setembro 2013 Bibliografia Método de avaliação
Decorator e Composite. Nazareno Andrade (baseado no material de Hyggo Almeida)
Decorator e Composite Nazareno Andrade (baseado no material de Hyggo Almeida) Decorator Vocês sabem como ler um arquivo texto em Java??? Pode-se usar a classe java.io.fileinputstream Vamos fazer um teste
Lição 11 Herança, polimorfismo e interfaces
Lição 11 Herança, polimorfismo e interfaces 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Definir superclasses e subclasses Criar Override de métodos de superclasses Criar métodos e classes
Padrões GoF. Leonardo Gresta Paulino Murta [email protected]
Padrões GoF Leonardo Gresta Paulino Murta [email protected] Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma
Programação Orientada a Objetos. Padrões de Criação
Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified
Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.
JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta
Java para Desktop. Programação Orientada à Objetos 2 JSE
Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona
PADRÕES DE PROJETO. Cleviton Monteiro ([email protected])
PADRÕES DE PROJETO Cleviton Monteiro ([email protected]) Roteiro Atributos de qualidade Boas práticas de projeto Code Smell Padrões de Projeto Atributos de qualidade Coesão Acoplamento Atributos de qualidade
Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy
Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State
Padrões de Desenho. ---------Engenharia de Software---------
Padrões de Desenho Objectivos: Compreender o que são os padrões de desenho? Vantagens e desvantagens em usar os padrões de desenho? Qual o formato de um padrão de desenho? Conhecer as varias secções de
Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba
Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba Imagine que uma pessoa tenha aprendido diversas técnicas de pintura. A partir desse conhecimento, ela saberá como pegar um pincel, como misturar as cores
Padrõ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
Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha ([email protected])
Padrões de J930 Projeto Introdução Helder da Rocha ([email protected]) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas
1Introdução Helder da Rocha ([email protected])
J930 Padrões Projeto de 1Introdução Helder da Rocha ([email protected]) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas
Design Patterns. Viviane Torres da Silva [email protected]. http://www.ic.uff.br/~viviane.silva/2012.1/es1
Design Patterns Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto
Curso - Padrões de Projeto Módulo 1: Introdução
Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza [email protected] http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação
POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA
Lincoln S. Rocha ([email protected]) POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Background Artigo do Kiczales 2 3 1 Objetivo da Programação?
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Técnicas de Programação II
Técnicas de Programação II Aula 04 Arrays Edirlei Soares de Lima Arrays Array é um mecanismo que nos permite armazenar um conjunto de valores na memória do computador. Em Java,
Padrões de Projeto. Prof. Jefersson Alex dos Santos ([email protected]) http://www.dcc.ufmg.br/~jefersson
Padrões de Projeto Prof. Jefersson Alex dos Santos ([email protected]) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos
Interfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Herança e Polimorfismo
Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais
Padrões Fábrica. Simple Factory Factory Method
Universidade Federal de Uberlândia Faculdade de Computação Disciplina: POO2 Prof. Fabiano Azevedo Dorça Padrões Fábrica Simple Factory Padrões Fábrica Padrão Simple Factory: fornece interfaces para criar
Design Patterns (Factory Method, Prototype, Singleton)
DesignPatterns (FactoryMethod,Prototype,Singleton) JoãoAntónioPaz LuísMiguelClaro AlbertoManuelGomes N.º12812 N.º12817 N.º12818 FACTORYMETHOD Padrãoquedefineumainterfaceparacriaçãodeobjectos,masdeixaassubclassesdecidirque
SCE 186- Engenharia de Software
Reuso de Software SCE 186- Engenharia de Software Profa Rosana T. Vaccare Braga (parte do material elaborado com base no tutorial sobre reuso da Profa. Claudia Werner) 1 Sumário Introdução Benefícios X
1. Identifique-se na parte inferior desta capa. Caso se identifique em qualquer outro local deste caderno, você será eliminado do Concurso.
1. Identifique-se na parte inferior desta capa. Caso se identifique em qualquer outro local deste caderno, você será eliminado do Concurso. 2. Este Caderno contém, respectivamente, duas questões discursivas,
Padrões de Projeto de Software
Padrões de Projeto de Software Lista de Exercícios AV1 01 Luiz Leão [email protected] http://www.luizleao.com Questão 1 Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve
Design Patterns. Histórico e Fundamentos: Padrões do GoF Criacionais Estruturais Comportamentais. Fernando Anselmo
Design Patterns Histórico e Fundamentos: Padrões do GoF Criacionais Estruturais Comportamentais Fernando Anselmo Sobre o Instrutor Fernando Anselmo [email protected] 25 anos na área de Desenvolvimento
Programação Java (nível intermediário) 4. Polimorfismo
Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo
Padrões de Projeto de Software
Padrões de Projeto de Software Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático PADRÕES CRIAÇÃO Abstract Factory Builder Factory Method Prototype Singleton. PADRÕES ESTRUTURAIS
