Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Tamanho: px
Começar a partir da página:

Download "Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação"

Transcrição

1 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 Programadores freqüentemente empregam soluções que já utilizam antes em situações parecidas. Estas soluções envolvem o projeto de classes, redefinições de métodos, combinação de objetos, delegação de mensagens e assim por diante. Padrões de projeto nada mais são do que a documentação destas soluções. Um padrão é composto por quatro elementos: um nome, uma descrição do problema que ele resolve, como ele pode resolver o problema (a solução) e as conseqüências de se usar o padrão. O nome do padrão torna a comunicação entre programadores fácil. Um único nome descreve toda uma solução e traz com ela suas vantagens e desvantagens. A documentação dos programas fica mais abstrata, pois é necessário descrever menos detalhes que onde a descrição dos padrões não precisa ser repetida. A descrição do problema diz em que situações o padrão se aplica, quando ele pode ser usado. A solução descreve o projeto que resolve o problema. O projeto consiste de classes, objetos e seus interrelacionamentos. A solução é abstrata pode ser aplicada em diversas situações semelhantes e independe da linguagem utilizada. Cada padrão possui vantagens e desvantagens, as conseqüências de se usar o padrão. Isto inclui meios alternativos de implementação, como a manutenção é facilitada ou dificultada pelo padrão, quais são as compensações (trade-offs) de tempo/espaço e flexibilidade/rigidez envolvidos no uso do padrão. Gamma et al. descrevem vinte e três padrões que podem ser utilizados em praticamente qualquer área de programação. Estes padrões se tornaram clássicos da orientação a objetos. Eles foram utilizados por muitos programadores, mas não tinham sido sistematicamente documentados e catalogados. Os padrões de Gamma et al. são chamados de padrões da gangue dos quatro (GoF patterns). Os padrões. Gamma et al, são classificados de duas formas: por propósito que agrupa os padrões em criação, estrutura e comportamento; e por escopo que agrupa os padrões em classe e objeto. Na classificação por propósito os 23 padrões são agrupados em três categorias: 1. Padrões de criação. Eles auxiliam a criação de objetos, tornando o programa menos dependente do modo como os objetos são criados e compostos. Assim, estes padrões permitem que se mude as classes dos objetos criados em execução com pouco esforço do programador; 2. Padrões de estrutura. Descrevem modos flexíveis de compor classes e objetos. Como exemplo, o padrão Composite descreve como compor classes primitivas e compostas de tal forma que ambas possam ser utilizadas pela mesma interface (uma superclasse); 3. Padrões de comportamento. Estes padrões são relacionados a algoritmos e responsabilidade associada a cada objeta. Mudando-se os objetos e classes utilizadas, podemos mudar o comportamento do programa. Acoplando-se um objeto a outro, podemos adicionar comportamento ao segundo objeto. Propósito 1. Criação 2. Estrutura 3. Comportamento Interpreter Template Classe Factory Method Class Adapter Method Abstract Factory Object Adapter Chain of Responsibility Builder Bridge Command Prototype Composite Iterator Escopo Singleton Decorator Mediator Objeto Facade Memento Flyweight Observer Proxy State Strategy Visitor Na classificação de Metsker os 23 padrões são reagrupados por intenção, ou por problema a ser solucionado em 5 grupos: 1. Oferecer uma interface, 2. Atribuir uma responsabilidade, 3. Realizar a construção de classes ou objetos 4. Controlar formas de operação 5. Implementar uma extensão para a aplicação Interação 1. Interfaces 2. Responsabilidade 3. Construção 4. Operação Padrões Adapter, Facade, Composite, Bridge Singleton, Observer, Mediator, Proxy, Chain of Responsibility, Flyweight Builder, Factory Method, Abstract Factory, Prototype, Memento Template Method, State, Strategy, Command, Interpreter

2 5. Extensão Decorator, Iterator, Visitor 2 Interface Interface são métodos e dados de uma classe que são acessados por os objetos de outras classes. A implementação do código é dentro dos métodos Um método abstract é o componente da linguagem que representa apenas a interface de um objeto. Exigem que classe que implementa a interface ofereça implementação para seus métodos. Não garante que métodos terão implementação que faça efetivamente alguma coisa. Os Design patterns que oferecem aplicações específicas de interfaces com regras definidas para: Adapter: para adaptar a interface de uma classe para outra que o cliente espera Façade: oferecer uma interface simples para uma coleção de classes Composite: definir uma interface comum para objetos individuais e composições de objetos Bridge: desacoplar uma abstração de sua implementação para que ambos possam variar independentemente 2.1 Adaptador - Adapter "Objetivo: converter a interface de uma classe em outra interface esperada pelos clientes. Adapter permite a comunicação entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces." [GoF] Problema: Estrutura Cliente: é uma aplicação que colabora com objetos aderentes à interface ClasseEsperada ClasseEsperada define a interface requerida pelo Cliente ClasseExistente: interface que requer adaptação Adaptador: adapta a interface do Recurso à interface ClasseEsperada Aplicabilidade Duas classes com interfaces incompatíveis devem ser utilizadas em conjunto; Um adaptador de objetos (segunda Figura abaixo) pode ser utilizado com objetos de Adapter e suas subclasses; Adaptador pode ser utilizado mesmo quando os métodos das classes não são iguais ou uma das classes não possui todos os métodos da outra. Exemplo

3 Conseqüências A adaptação pode ser uma simples conversão dos nomes dos métodos (push=empilha) como pode envolver algoritmos complexos Padrões semelhantes ou relacionados Bridge Possui estrutura similar, mas tem outra finalidade: separar uma interface de sua implementação para que possam ser alteradas independentemente. Adapter serve para alterar a interface de um objeto existente Decorator Acrescenta funcionalidade a um objeto sem alterar sua interface (mais transparente) Proxy Representa outro objeto sem mudar sua interface Exemplo Java: public abstract class Poligono{ private float centrox=0; private float centroy=0; public float getcentrox() { return centrox; public void setcentrox(float valor) { centrox=valor; public float getcentroy() { return centroy; public void setcentroy(float valor) { centroy=valor; public abstract float area(); public class Quadrado extends Poligono{ private float lado=0; public float getlado() { return lado; public void setlado(float vallado) { lado=vallado; public float area() { return lado*lado; public class Triangulo extends Poligono{ private float base=0; private float altura=0; public float getbase() { return base; public void setbase(float valor) { base=valor; public float getaltura() { return altura; public void setaltura(float valor) { altura=valor; public float area() { return base * altura / 2; public class HexagonoEstrangeiro{ private float lado=0; public float getlado() { return lado; public void setlado(float vallado) { lado=vallado; public float calculaarea() { return 6 * (float)(math.pow(lado,2.0) * Math.sqrt(3.0)) / 4 ; public class AdaptadorHexagono extends Poligono{ private HexagonoEstrangeiro h = new HexagonoEstrangeiro(); ; public float getlado() { return h.getlado(); public void setlado(float valor) { h.setlado(valor); public float area() { return h.calculaarea(); public class App { public static void main(string args[]){

4 AdaptadorHexagono h = new AdaptadorHexagono(); h.setlado(10); System.out.println("h area=" + h.area()); 2.2 Fachada - Facade "Oferecer uma interface única para um conjunto de interfaces de um subsistema. Façade define uma interface de nível mais elevado que torna o subsistema mais fácil de usar." [GoF] O padrão fachada resolve este problema providenciando uma classe facade que abstrai todo o subsistema. Torna-se mais fácil utilizar porque há apenas uma interface a ser compreendida. Estrutura Aplicabilidade Clientes de um subsistema forem utilizar apenas parte da funcionalidade dele. Então fachada provê uma interface mais fácil de usar do que todo o subsistema; Há muitas dependências entre dois subsistemas, dificultando a manutenção. Conseqüências O subsistema é mais fácil de usar; O subsistema é mais independente dos clientes, pois não existe uma comunicação entre eles. Exemplo Exemplo Java: class Cliente {

5 private String nome; private String placa; public String getnome() { return nome; public void setnome(string val) { nome = val; public String getplaca() { return placa; public void setplaca(string val) { placa = val; import java.util.date; class Vaga { private int numero; private Date entrada; private Date saida; public int getnumero() { return numero; public void setnumero(int val) { numero = val; public Date getentrada() { return entrada; public void setentrada(date val) { entrada = val; public Date getsaida() { return saida; public void setsaida(date val) { saida = val; class FachadaControleVagas { Cliente cli; Vaga vaga; public FachadaControleVagas(Cliente c, Vaga v){ cli = c; vaga = v; public final String getplacacarro() { return cli.getplaca(); public final void setplacacarro(string val) { cli.setplaca(val); public final int getnumerovaga() { return vaga.getnumero(); public final void setnumerovaga(int val) { vaga.setnumero(val); 2.3 Compositor - Composite "Compor objetos em estruturas de árvore para representar hierarquias todo-parte. O padrão Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme." [GoF] Com esse padrão trata grupos e indivíduos diferentes através de uma única interface Estrutura Exemplo Aplicabilidade Sempre que houver necessidade de tratar um conjunto como um indivíduo: Funciona melhor se relacionamentos entre os objetos for uma árvore;

6 Caso o relacionamento contenha ciclos, é preciso tomar precauções adicionais para evitar loops infinitos, já que Composite depende de implementações recursivas; Implementação Referências explícitas ao elemento pai: LeiaPai() Direção do relacionamento. Filhos conhecem pai? Pai conhece filhos? Operações para adicionar e remover os filhos: LeiaTipo() para saber se é folha ou composite Composite destrói todos seus filhos em cascata quando é destruído ou protege a exclusão caso tenha folhas. Conseqüências O código do aplicativo se simplifica, já que objetos compostos e folhas são tratados uniformemente; Objetos irão trabalhar com qualquer subclasse que seja acrescentada ao programa public abstract class Publicacao { private int numpaginas=0; private String titulo; public Publicacao(int n, String t){ numpaginas = n; titulo = t; public int getnumpaginas() { return numpaginas; public void setnumpaginas(int val) { numpaginas=val; public String gettitulo() { return titulo; public void settitulo(string val) { titulo=val; public abstract int totalpaginas(); public class Secao extends Publicacao{ public Secao(int n, String t){ super(n, t); public int totalpaginas() { return getnumpaginas(); public class Capitulo extends Publicacao { private List <Publicacao> publicacoes = new ArrayList <Publicacao>(); public Capitulo(int n, String t){ super(n, t); public boolean addpublicacao(publicacao v) { return publicacoes.add( v ); public Publicacao removepublicacao(int idx) { return publicacoes.remove(idx); public int sizeofpublicacao(){ return publicacoes.size(); public Iterator<Publicacao> iteratorpublicacao() { return publicacoes.iterator(); public int totalpaginas() { int soma=getnumpaginas(); Iterator<Publicacao> it = this.iteratorpublicacao(); for(int n=0; n < this.sizeofpublicacao(); n++) soma+=it.next().totalpaginas(); return soma; public class App { public static void main(string args[]){ Capitulo c1 = new Capitulo(10,"OO"); Capitulo c2 = new Capitulo(20,"Encapsulamento"); c1.addpublicacao(c2); Secao s1 = new Secao(1,"Construtores"); c2.addpublicacao(s1); Secao s2 = new Secao(2,"Visibilidade"); c2.addpublicacao(s2); Capitulo c3 = new Capitulo(20,"Relacionamento"); c1.addpublicacao(c3); Secao s3 = new Secao(3,"Associcacao"); c3.addpublicacao(s3); System.out.println("pags= " + c1.totalpaginas() ); 2.4 Ponte - Bridge "Desacoplar uma abstração de sua implementação para que os dois possam variar independentemente."

7 [GoF] Problema Estrutura Exemplo Conseqüências Detalhes de implementação totalmente inaccessíveis aos clientes Eliminação de dependências em tempo compilação das implementações Implementação da abstração pode ser configurada em tempo de execução Aplicabilidade Quando for necessário evitar uma ligação permanente entre a interface e implementação Quando alterações na implementação não puderem afetar clientes Quando tanto abstrações como implementações precisarem ser capazes de suportar extensão através de herança Quando implementações são compartilhadas entre objetos desconhecidos do cliente Exemplo Java: public abstract class Imposto { public abstract float taxa(float p); public class Importado extends Imposto{ public float taxa(float v) { return v * 0.50f; public class Nacional extends Imposto{ public Nacional() { public float taxa(float v) { return v * 0.20f; public class Publicacao { private String nome; private String autor;

8 private Imposto imposto; private float preco=0f; public Publicacao (Imposto v) { imposto = v; public String getnome() { return nome; public void setnome(string v) { nome=v; public String getautor() { return autor; public void setautor(string v) { nome=v; public float getpreco() { return preco; public void setpreco(float v) { preco=v; public float taxaimposto() { return imposto.taxa(preco); public class Livro extends Publicacao{ private String ISBN; public Livro(Imposto v) {super(v); public String getisbn() { return ISBN; public void setisbn(string val) { ISBN=val; public class Revista extends Publicacao{ private int ano=0; private int mes=0; public Revista(Imposto v) { super(v); public int getano() { return ano; public void setano(int val) { ano=val; public int getmes() { return mes; public void setmes(int val) { mes=val; public class App { public static void main(string args[]){ Nacional n1 = new Nacional(); Livro l1 = new Livro(n1); l1.setpreco(100); System.out.println("taxa liv nac=" + l1.taxaimposto()); Importado i1 = new Importado(); Revista r2 = new Revista(i1); r2.setpreco(10); System.out.println("taxa rev imp=" + r2.taxaimposto());

Programação com Objectos

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 é

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) 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

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) 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

Leia mais

Análise e Projeto Orientados por Objetos

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

Leia mais

Programação Orientada a Objetos. Padrões de Criação

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

Leia mais

Curso - Padrões de Projeto Módulo 1: Introdução

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 vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br 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

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br 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

Leia mais

Introdução à Padrões de Projeto. Glauber Magalhães Pires

Introdução à Padrões de Projeto. Glauber Magalhães Pires Introdução à Padrões de Projeto Glauber Magalhães Pires Agenda O que são padrões de projeto? Para que servem e por que utilizá-los? Elementos constituintes Como escolher o padrão a ser usado? Como são

Leia mais

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

Padrões clássicos ou padrões GoF O livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

Leia mais

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 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

Leia mais

Padrões de Projeto de Software Orientado a Objetos

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

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 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?

Leia mais

Padrõ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 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 mais

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR FACULDADE DE CIÊNCIAS APLICADAS SAGRADO CORAÇÃO DIRETORIA DE ENSINO SUPERIOR COORDENAÇÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO GUSTAVO ANDRÉ DE FREITAS RILIANE ALPOIM PARIS RODRIGO SILVA DE SOUZA PADRÕES

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

Prof.ª Esp. Talita Pagani

Prof.ª Esp. Talita Pagani Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

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 Operação

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 8 Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há

Leia mais

Padrões de Desenho. ---------Engenharia de Software---------

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

Leia mais

SCE 186- Engenharia de Software

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

Leia mais

MÓDULO Modelagem de classes de projeto

MÓDULO Modelagem de classes de projeto MÓDULO Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há nada mais para adicionar, mas quando não há nada mais para retirar. -Eric Raymond, The Cathedral and the Bazaar

Leia mais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais Especialização em web com interfaces ricas Padrões de Projeto - Estruturais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB GLAUBER VOLKMER SILVIO DANILO DE OLIVEIRA MARÇAL DE LIMA HOKAMA Resumo. Os padrões de projetos tratam

Leia mais

Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP

Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP Padrões de Projeto (design patterns) Apresentação do conceito de design pattern Classificação dos design

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com)

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com) PADRÕES DE PROJETO Cleviton Monteiro (cleviton@gmail.com) Roteiro Atributos de qualidade Boas práticas de projeto Code Smell Padrões de Projeto Atributos de qualidade Coesão Acoplamento Atributos de qualidade

Leia mais

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 Design Patterns Histórico e Fundamentos: Padrões do GoF Criacionais Estruturais Comportamentais Fernando Anselmo Sobre o Instrutor Fernando Anselmo fernando.anselmo@x25.com.br 25 anos na área de Desenvolvimento

Leia mais

OO IMPACTO DA UTILIZAÇÃO DE DESIGN

OO IMPACTO DA UTILIZAÇÃO DE DESIGN OO IMPACTO DA UTILIZAÇÃO DE DESIGN PATTERNS NAS MÉTRICAS E ESTIMATIVAS DE PROJETOS DE SOFTWARE: a utilização de padrões tem alguma influência nas estimativas? Ricardo Alexsandro de Medeiros Valentim 1

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

Padrões de Projeto. Bibliografia. Nomenclatura

Padrões de Projeto. Bibliografia. Nomenclatura Padrões de Projeto Prof. Maria Augusta Vieira Nelson PUC Minas Prof. Torsten Paul Nelson 1 Bibliografia LARMAN, Graig. Utilizando UML e Padroes:Uma introdução a análise e ao projeto orientados a objetos.

Leia mais

Padrões de Software (Software Patterns)

Padrões de Software (Software Patterns) Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Motivação! Exemplo Estratégia MVC! Forma

Leia mais

Padrões Comportamentais

Padrões Comportamentais Padrões Comportamentais Formulário para Descrição de Padrões Nome e Classificação Intenção Também Conhecido Como Motivação Aplicabilidade Estrutura Participantes Colaboradores Conseqüências Implementação

Leia mais

Profa. Thienne Johnson

Profa. Thienne Johnson Profa. Thienne Johnson E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison- Wesley, 1995. Conhecido como GoF (Gang of Four) Versão

Leia mais

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Lincoln S. Rocha (lincoln@great.ufc.br) 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?

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Padrão Básico de Projeto: Interfaces e Polimorfismo

Padrão Básico de Projeto: Interfaces e Polimorfismo Padrão Básico de Projeto: Interfaces e Polimorfismo Herança de implementação versus herança de interface Há uma diferença grande entre uma classe e seu tipo A classe define ambos um tipo e uma implementação

Leia mais

4 - Padrões de Construção

4 - Padrões de Construção J930 Padrões Projeto de 4Padrões de Construção Helder da Rocha (helder@acm.org) argonavis.com.br Introdução A maneira padrão de construir objetos em Java é através de construtores Toda classe tem um construtor:

Leia mais

Padrões. Identificando padrões

Padrões. Identificando padrões 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.

Leia mais

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma Pasteur Ottoni de Miranda Junior Alguns Padrões de Projeto Gamma Padrões Gamma de Projeto(ou Gang-of-Four, gof) Os padrões gof foram publicados por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 5 Herança Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

Desafios na construção de um Framework de acesso a dados em PHP

Desafios na construção de um Framework de acesso a dados em PHP 4 5 Desafios na construção de um Framework de acesso a dados em PHP Dimas Ferreira Vidal O presente artigo procura mostrar os principais desafios no processo de desenvolvimento do framework PHPO2_DB de

Leia mais

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas Especialização em web com interfaces ricas Padrões de Projeto - Comportamentais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Herança. Alberto Costa Neto DComp - UFS

Herança. Alberto Costa Neto DComp - UFS Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Proposta para a Implementação do Cadastro de um Log de Auditoria Baseada em Padrões de Projeto

Proposta para a Implementação do Cadastro de um Log de Auditoria Baseada em Padrões de Projeto FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Trabalho de Diplomação Gabriel Augusto Gimenes 9881 André Marcos Silva (Orientador) Trabalho de Diplomação Proposta para a Implementação

Leia mais

Padrões de Projeto em Desenvolvimento Web SCC 266. Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail.

Padrões de Projeto em Desenvolvimento Web SCC 266. Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail. Padrões de Projeto em Desenvolvimento Web SCC 266 Prof. Renata Pontin M. Fortes renata@icmc.usp.br PAE: Willian Watanabe (watinha@gmail.com) 2.semestre 2010 Instituto de Ciências Matemáticas e de Computação

Leia mais

Módulo 07 Características Avançadas de Classes

Módulo 07 Características Avançadas de Classes Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

DISCIPLINA: INGLÊS TÉCNICO E INSTRUMENTAL II CARGA HORÁRIA: 33 HORAS PERÍODO: 3º SEMESTRE LETIVO: 2012.2 CRÉDITOS: 02

DISCIPLINA: INGLÊS TÉCNICO E INSTRUMENTAL II CARGA HORÁRIA: 33 HORAS PERÍODO: 3º SEMESTRE LETIVO: 2012.2 CRÉDITOS: 02 DISCIPLINA: INGLÊS TÉCNICO E INSTRUMENTAL II CARGA HORÁRIA: 33 HORAS PERÍODO: 3º SEMESTRE LETIVO: 2012.2 CRÉDITOS: 02 OBJETIVOS Ler e compreender textos de gêneros diversos utilizando as estratégias/técnicas

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Construção de novas Classes em Java. Classes Atributos Métodos Herança... Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(

Leia mais

Programação com Objectos Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos)

Programação com Objectos Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos) LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico (201001040900) 1/10 LEIC-A LEIC-T LERC MEE MEIC-A 2009/2010 (1º Semestre) Teste Teórico 04 de Janeiro de 2010, 09:00 (120 minutos) Nome:

Leia mais

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS Modificador static e Pacotes Alberto Costa Neto DComp - UFS 1 Roteiro Modificador static Pacotes 2 Modificador static Instanciando a classe Funcionário matricula nome cpf salario salario-min getmatricula()

Leia mais

Design Patterns STRATEGY EMERSON BARROS DE MENESES

Design Patterns STRATEGY EMERSON BARROS DE MENESES Design Patterns STRATEGY EMERSON BARROS DE MENESES 1 Breve Histórico Sobre Design Patterns A origem dos Design Patterns (Padrões de Desenho ou ainda Padrões de Projeto) vem do trabalho de um arquiteto

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Ademar Aguiar Universidade do Porto & INESC Porto ademar.aguiar at fe.up.pt FEUP

Leia mais

PADRÕES DE PROJETO EM OOERLANG UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA. Manaus ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO

PADRÕES DE PROJETO EM OOERLANG UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA. Manaus ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO WILLIAM BREMGARTNER BELLEZA PADRÕES DE PROJETO EM OOERLANG Manaus 2013 WILLIAM BREMGARTNER BELLEZA PADRÕES

Leia mais

Implementação de Classe e Auto-Relacionamento em Java

Implementação de Classe e Auto-Relacionamento em Java UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida

Leia mais

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas Programação com Objectos Processamento de Dados I 4. Classes Abstractas 1 Conceito de classe abstracta Declaração de uma classe abstracta Implicações e características das classes abstractas Utilização

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Flávio Pernes de Medeiros

Flávio Pernes de Medeiros Flávio Pernes de Medeiros METODOLOGIA DA PESQUISA II Rio de Janeiro Flávio Pernes de Medeiros Março de 2011 Agradecimentos A minha família em especial minha esposa Newli Maura e filhos Bruno e Nicole.

Leia mais

ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS

ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ANDREIA TRAVAGLIA Uberlândia, Dezembro/2001. ILUSTRANDO PADRÕES DE IMPLEMENTAÇÃO DE PROJETOS BASEADOS EM OBJETOS ANDREIA TRAVAGLIA Monografia

Leia mais

Correção- STJ. Professor Marcelo Pacote marcelopacote@dominandoti.com.br W W W. D OMINANDOTI.COM.BR

Correção- STJ. Professor Marcelo Pacote marcelopacote@dominandoti.com.br W W W. D OMINANDOTI.COM.BR Correção- STJ Professor Marcelo Pacote marcelopacote@dominandoti.com.br WWW.DOMINANDOTI.COM.BR Acesse nosso site em WWW.DOMINANDOTI.COM.BR Cursos Livros Fórum Simulados Blog Materiais Turmas em Brasília,

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Análise e Projeto Orientados por Objetos

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

Leia mais

Capítulo 5 Reuso de Classes

Capítulo 5 Reuso de Classes Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)

Leia mais

Histórico de revisões

Histórico de revisões Design Patterns Histórico de revisões Data Versão Descrição Autor 15/1/2014 1.0 Finalização da primeira versão HEngholmJr OBJETIVOS Fornecer uma visão geral sobre Design Patterns visando atingir os requisitos

Leia mais

Padrões de Design. Jair C Leite

Padrões de Design. Jair C Leite Padrões de Design Jair C Leite 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

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

Leia mais

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Linguagem de Modelagem Unificada A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem para especificação, É uma linguagem para

Leia mais

3. PARADIGMA ORIENTADO A OBJETOS

3. PARADIGMA ORIENTADO A OBJETOS Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Categorias de Padrões

Categorias de Padrões Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas

Leia mais

Programação Orientada por Objetos

Programação Orientada por Objetos PPROG Paradigmas da Programação Programação Orientada por Objetos Relações entre Dependência Agregação Composição Associação (Livro Big Java, Late Objects Capítulo 12) Nelson Freire (ISEP DEI-PPROG 2014/15)

Leia mais

Refatoração de sistemas Java utilizando padrões de projeto: um estudo de caso

Refatoração de sistemas Java utilizando padrões de projeto: um estudo de caso UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Refatoração de sistemas Java utilizando padrões de projeto: um estudo de

Leia mais

Padrões. Design. com aplicações em Java. Helder da Rocha (helder.darocha@gmail.com)

Padrões. Design. com aplicações em Java. Helder da Rocha (helder.darocha@gmail.com) Padrões de Design com aplicações em Java Helder da Rocha (helder.darocha@gmail.com) Objetivos Apresentar cada um dos 23 padrões clássicos (catálogo do Gang of Four ) descrevendo [2][GoF] O problema que

Leia mais

1. Herança. Sobrescrevem métodos - redefinem métodos herdados. Subclasse herda de uma superclasse

1. Herança. Sobrescrevem métodos - redefinem métodos herdados. Subclasse herda de uma superclasse 1. Herança Herança - forma de reutilização de software Novas classes são criadas a partir de classes já existentes Absorvem atributos e comportamentos, e incluem os seus próprios Sobrescrevem métodos -

Leia mais

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

Design Patterns: Padrões para toda a vida

Design Patterns: Padrões para toda a vida Design Patterns: Padrões para toda a vida Palestrantes: Elaine Quintino da Silva Formada em Ciência da Computação pela Unifenas-MG. Possui Mestrado e Doutorado em Ciência da Computação pelo ICMC-USP. Atualmente

Leia mais

Algoritmos e Programação II. Sobrecarga

Algoritmos e Programação II. Sobrecarga Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque

Leia mais

Herança. Algoritmos e Programação II. Aula 5 Herança

Herança. Algoritmos e Programação II. Aula 5 Herança Algoritmos e Programação II Aula 5 Herança *Adaptado do material do Prof. Júlio Machado Herança Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato

Leia mais

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario Projeto de sistemas em Java Algoritmos e Programação I Aula 25 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Agora que já estamos manipulando com mais

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo GENERICS (Tipos Parametrizados, Classes Parametrizadas) : têm o objectivo de tornar as Colecções seguras em termos

Leia mais

Padrões de Software (Software Patterns)

Padrões de Software (Software Patterns) Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Considerações! Forma de um Padrão! Exemplo!

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

Introdução. Programação. Orientada a Objetos: Reuso. Introdução. Classes Abstratas

Introdução. Programação. Orientada a Objetos: Reuso. Introdução. Classes Abstratas Introdução Programação Orientada a Objetos: Reuso Alexandre César Muniz de Oliveira Hierarquia de classes está associada a forma como se distribui conceitos (comportamentos) entre as unidades que compõem

Leia mais