Design Patterns: Padrões para toda a vida

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

Download "Design Patterns: Padrões para toda a vida"

Transcrição

1 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 é instrutora e desenvolvedora de software na Globalcode Kleber da Silva Xavier Formado em Engenharia Mecatrônica pela POLI-USP Possui Mestrado em Ciência da Computação pelo IME-USP Atualmente é instrutor na Globalcode 1

2 Agenda Introdução Catálogos de padrões Design patterns para o dia-a-dia Conclusões 2

3 Agenda Introdução Catálogos de padrões Design patterns para o dia-a-dia Conclusões 3

4 Introdução Um design-pattern é... Forma padrão de organizar classes e objetos Nomes para soluções que você já modelou Forma de compartilhar conhecimento de POO Soluções POO para problemas que incidem em diversos cenários de desenvolvimento Definição de um conjunto finito de responsabilidades para uma classe 4

5 Introdução A documentação de um pattern deve conter no mínimo: Nome Problema descrição do problema que deve ser resolvido pelo pattern Solução como o problema é resolvido Outras características interessantes de um pattern são: Consequências custos e benefícios da utilização do pattern. Patterns relacionados outros patterns comumente utilizados com o pattern documentado Outros nomes pelos quais o pattern é conhecido 5

6 Introdução Design patterns podem ser aplicados: Na modelagem da arquitetura técnica do aplicativo Na modelagem de negócio (business domain) Podemos usar patterns no papel de: Modelador você desenvolve bibliotecas que aplica design patterns nos seus modelos Usuário você utiliza bibliotecas que aplicaram os design patterns Arquiteto você utiliza design patterns para estabelecer a modelagem de uma arquitetura 6

7 Agenda Introdução Catálogos de padrões Design patterns para o dia-a-dia Conclusões 7

8 Catálogos de padrões Os patterns são geralmente agrupados em catálogos ou famílias Alguns catálogos: GoF (gang of four) Core J2EE Microsoft Data Patterns Analysis Patterns (Martin Fowler) Enterprise Integration Patterns Várias outras famílias 8

9 GoF Patterns Catálogo criado em 1995 com a publicação do livro Design Patterns: Elements of Reusable Object-Oriented Software Os autores do livro ficaram popularmente conhecidos como gangue dos quatro (gang of four- GoF) Define uma lista com 23 padrões de projeto A publicação desse livro é considerada um marco na evolução e utilização de padrões de projetos dentro da indústria de software 9

10 GoF Patterns 10

11 Core J2EE Patterns Surgiu com a publicação em 2001, do livro Core J2EE Patterns Descreve um catálogo de 25 padrões específicos para a plataforma Java EE Produto de anos de experiência aplicados em consultoria em projetos Java EE, documentados por consultores da Sun Microsystems Atualmente esse livro está em sua segunda edição, com alguns novos patterns derivados de frameworks de sucesso como Struts e Hibernate 11

12 Core J2EE Patterns Os padrões encontram-se classificados em: Apresentação Negócio Integração 12

13 Agenda Introdução Catálogos de padrões Design patterns para o dia-a-dia Conclusões 13

14 Design patterns para o dia-a-dia Frameworks e arquiteturas modernas Especialistas tem discutido sobre a necessidade de implementar alguns design patterns nas aplicações DAO, Factory, Singleton,... Muitos padrões que se aplicam à modelagem de negócio Necessários em qualquer projeto de OO, independente do framework ou arquitetura 14

15 Design patterns para o dia-a-dia Template Method Strategy State Bridge Decorator 15

16 Template Method Problema: Uma parte do algoritmo depende da implementação das classes filhas, mas a estrutura do algoritmo é única Estratégias de solução: Herança e sobrescrita de métodos Repetição de código nas classes filhas não é boa prática Pode permitir inclusão de erros se a estrutura do algoritmo for alterada 16

17 Template Method (Exemplo sem o padrão) public publicclass classrelatorio { public publicvoid voidmontacabecalho() { // // regra regra para para montar montar cabecalho cabecalho public publicvoid voidmontarelatorio() { montacabecalho(); // // regra regra para para montar montar corpo corpo do do relatório relatório // // regra regra para para montar montar rodapé rodapé class classrelatoriofinanceiro extends extendsrelatorio { public publicvoid voidmontarelatorio() { // // regra regra para para montar montar cabecalho cabecalho // // regra regra para para montar montar corpo corpo do do relatório relatório // // regra regra para para montar montar rodapé rodapé

18 Template Method Solução: Definir o esqueleto do algoritmo em um método concreto de uma classe abstrata e deixar alguns métodos para serem implementados nas classes filhas. 18

19 Template Method (Exemplo usando o padrão) public publicclass classrelatorio { public publicfinal finalvoid voidmontacabecalho() { // // regra regra para para montar montar cabecalho cabecalho public publicfinal finalvoid voidmontarodape() { // // regra regra para para montar montar rodapé rodapé public publicabstract abstractvoid voidmontacorpo(); 19 public publicfinal finalvoid voidmontarelatorio() { montacabecalho(); montacorpo(); montacorpo(); montarodape(); montarodape(); class classrelatoriofinanceiro extends extendsrelatorio { public publicvoid voidmontacorpo() { // // regra regra para para montar montar corpo corpo do do relatório relatório......

20 Template Method 20 Outros exemplos: Frameworks em geral para implementar IoC InputStream de java.io public publicabstract abstractclass classinputstream InputStreamimplements implementscloseable { public publicabstract abstractint intread() throws throwsioexception; public publicint intread(byte read(byteb[], b[], int intoff, int intlen) throws throwsioexception{ int intc = read(); read(); int inti = 1; 1; try try { for for (; (; i < len len ; i++) i++) { c = read(); read(); if if (c (c == == -1) -1){ break; break; catch catch (IOException (IOExceptionee) ee) { { return returni; i;......

21 Strategy Problema: Objetos precisam ser manipulados usando algoritmos que podem ser trocados em tempo de execução frente a uma situação Estratégias de solução: If / then / else se um novo comportamente precisar ser adicionado, há necessidade de alterar o código existente (novos ifs) Herança O algoritmo varia com o tipo de objeto, mas essa variação não pode acontecer em tempo de execução 21

22 Strategy (Exemplo sem o padrão) public publicclass classpedido { FormaPagamento FormaPagamentof; f; Cliente Cliente c; c; Collection<Item> Collection<Item> itens; itens; public publicdouble doublegettotal() { // // regra regra que que calcula calcula preco precototal dos dos itens itens public publicdouble doublegettotalcomdesconto() { if if (f.getdescricao().equals("a vista")){ vista")){ return returngettotal() - (0.2 (0.2* gettotal()); gettotal()); else elseif if (gettotal() (gettotal() > 500) 500) { return returngettotal() - (0.15 (0.15* gettotal()); gettotal()); else elseif if (gettotal() (gettotal() > 300) 300) { return returngettotal() - (0.1 (0.1* gettotal()); gettotal()); 22

23 Strategy Solução: Encapsular o algoritmo em classes separadas 23

24 Strategy (Exemplo usando o padrão) public publicclass classformapagamentostrategy implements implementsdescontostrategy { public publicdouble doublecalculadesconto(pedido pedido) pedido) { if if (pedido.getformapagamento().getdescricao().equals("a vista")) vista")) return returnpedido.gettotal() * 0.2; 0.2; public publicclass classvalorstrategy ValorStrategyimplements implementsdescontostrategy { public publicdouble doublecalculadesconto(pedido pedido) pedido) { if if (pedido.gettotal() > 500) 500) return returnpedido.gettotal() * 0.15; 0.15; else elseif if (pedido.gettotal() > 300) 300) return returnpedido.gettotal() * 0.1; 0.1; 24

25 Strategy (Exemplo usando o padrão) public publicclass classpedido { DescontoStrategy DescontoStrategydescontoStrategy;... public publicdouble doublegettotal() { // // regra regra que que calcula calcula preco precototal dos dos itens itens public publicvoid voidsetdescontostrategy(descontostrategy st) st) { this.descontostrategy = st; st; public publicdouble doublegettotalcomdesconto() { return returngettotal() - descontostrategy.calculadesconto(this); 25

26 Strategy Outros exemplos FileFilter e FilenameFilter de java.io TreeSet e Comparator de java.util class classcomparadornomecliente<cliente> implements implementscomparator { public publicint intcompare(cliente compare(clienteo1, o1, Cliente Cliente o2) o2) { return returno1.getnome().compareto(o2.getnome()); class classteste { public publicstatic staticvoid voidmain(string[] args) args) { TreeSet TreeSets = new newtreeset(new TreeSet(newComparadorNomeCliente()); s.add(new s.add(newcliente("maria")); s.add(new s.add(newcliente("josé")); 26

27 State Problema: Algoritmo deve variar de acordo com o estado de um objeto Estratégias de solução: if / then / else / switch Se um novo estado precisar ser criado, o controle de ifs deve ser alterado 27

28 State Diagrama de estados para um pedido 28

29 State (Exemplo sem padrão) public publicclass classpedido { private privateenum enumstatus { PROCESSANDO, PROCESSANDO, CANCELADO, CANCELADO, ENVIADO ENVIADO ; ; private privatestatus status; status; public publicvoid voidalterar() { switch(status) switch(status) { case caseprocessando: //código //código para para alteração alteração do do pedido pedido break; break; case casecancelado: String Stringmsg1="Não é possivel possivelalterar um um pedido pedido cancelado"; cancelado"; throw thrownew newillegalstateexception(msg1); case caseenviado: String Stringmsg2 = "Não "Não é possivel possivelalterar um um pedido pedido enviado"; enviado"; throw thrownew newillegalstateexception(msg2); public publicvoid voidcancelar() {... {... public publicvoid voidenviar() {... {... 29

30 State Solução: Isolar o algoritmo a ser executado em classes que representam o estado dos objetos Especialização do Strategy 30

31 State Diagrama de classes para o exemplo 31

32 Classe Pedido utilizando State public publicclass classpedido { private privatestatuspedido StatusPedidostatus; status; public publicvoid voidalterar() { status.alterar(this); public publicvoid voidcancelar() { status.cancelar(this); public publicvoid voidenviar() { status.enviar(this); public publicvoid voidsetstatus(statuspedido status) status) { this.status this.status = status; status; public publicinterface interfacestatuspedido { public publicvoid voidalterar(pedido pedido); pedido); public publicvoid voidcancelar(pedido pedido); pedido); public publicvoid voidenviar(pedido pedido); pedido); 32

33 Classe PedidoProcessando public publicclass classpedidoprocessando implements implementsstatuspedido { public publicvoid voidalterar(pedido pedido) pedido) { //código //código para para alteração alteração do do pedido pedido public publicvoid voidcancelar(pedido pedido) pedido) { //Código //Código para para cancelamento cancelamento do do pedido pedido pedido.setstatus(new PedidoCancelado()); public publicvoid voidenviar(pedido pedido) pedido) { //Código //Código para para envio envio do do pedido pedido pedido.setstatus(new PedidoEnviado()); 33

34 Bridge Problema: Num modelo de abstração/implementação, há a necessidade de variar as abstrações e implementações de forma independente Estratégias de solução: Herança de interfaces ou classes abstratas Implementação fortemente ligada à abstração Para estender a abstração devem ser criadas novas classes proliferação de classes 34

35 Bridge (Exemplo sem o padrão) Ref. 35

36 Bridge Solução Trocar o modelo de herança entre abstração/implementação por uma agregação 36

37 Bridge (Exemplo usando o padrão) public publicclass classloggerdata LoggerDataextends extendslogger{ public publicstring Stringformat(String format(stringtexto) texto) { String StringnovoTexto; novotexto; //regra //regra para para formatacao formatacaodo do texto texto por por data data completa completa return returnnovotexto; novotexto; public publicclass classloggerhora LoggerHoraextends extendslogger{ public publicstring Stringformat(String format(stringtexto) texto) { String StringnovoTexto; novotexto; //regra //regra para para formatacao formatacaodo do texto texto por por Hora Hora return returnnovotexto; novotexto; 37

38 Bridge (Exemplo usando o padrão) public publicinterface interfacemidiagravacao{ public publicvoid voidgrava(string grava(stringtexto); texto); public publicclass classgravacaobd GravacaoBDimplements implementsmidiagravacao{ public publicvoid voidgrava(string grava(stringtexto) texto) { // // regra regra para para gravacao gravacaodo do texto texto em em banco banco de de dados dados public publicclass classgravacaoarquivo GravacaoArquivoimplements implementsmidiagravacao{ public publicvoid voidgrava(string grava(stringtexto) texto) { // // regra regra para para gravacao gravacaodo do texto texto em em arquivo arquivo 38

39 Bridge (Exemplo usando o padrão) public publicabstract abstractclass classlogger{ MidiaGravacao MidiaGravacaomidia; public publicvoid voidsetmidiagravacao(midiagravacao midia){ midia){ this.midia this.midia = midia; midia; public publicvoid voidlog(string log(stringtexto){ texto){ String StringtextoFormatado textoformatado = format(texto); format(texto); midia.grava(textoformatado); public publicabstract abstractstring Stringformat(String format(stringtexto); texto); 39

40 Bridge (Exemplo usando o padrão) public publicstatic staticvoid voidmain(string[] args) args) { Logger Loggerlog1 = new newloggerdata(); log1.setmidiagravacao(new GravacaoArquivo()); log1.log("teste"); Logger Loggerlog2 = new newloggerdata(); log2.setmidiagravacao(new GravacaoBD()); GravacaoBD()); log2.log("teste"); 40

41 Bridge Junção de dois outros padrões Template Method Strategy Outros exemplos: Comumente usado na implementação de drivers 41

42 Decorator Problema: É necessário adicionar alguns comportamentos a determinados objetos Estratégias de solução: Herança para adicionar comportamentos sobre outras classes O comportamento vale para a hierarquia toda, o que pode não ser desejado 42

43 Hierarquia original de Turma 43

44 Explosão de classes 44

45 Decorator Solução: Criar classes com o comportamento desejado capazes de encapsular as demais classes da hierarquia. 45

46 Decorator Diagrama de classes para o exemplo 46

47 Classe Turma public publicabstract abstractclass classturma { private privatecollection<matricula> matriculas; matriculas; public publicabstract abstractvoid voidaddmatricula(matricula m); m); public publicabstract abstractvoid voidcancelarmatricula(matricula m); m); public publicdouble doubleprecovaga() { return return10.0; public publiccontrato gerarcontrato(string... clausulas) clausulas) { return returnnew newcontrato(); 47

48 Classe TurmaPadrao public publicclass classturmapadrao TurmaPadraoextends extendsturma { public publicvoid voidaddmatricula(matricula m) m) { //logica //logicapara adição adição de de matricula matricula public publicdouble doubleprecovaga() { return return10.0; public publiccontrato gerarcontrato(string... clausulas) clausulas) { //logica //logicapara geração geração de de contrao contrao return returncontrato; public publicvoid voidcancelarmatricula(matricula m) m) { //logica //logicapara cancelamento cancelamento de de matricula matricula 48

49 Classe TurmaPJ public publicclass classturmapj TurmaPJextends extendsturma { Turma Turma turmadecorada; public publicturmapj(turma t) t) { turmadecorada = t; t; public publicvoid voidaddmatricula(matricula m) m) { // // Regras Regras diferentes diferentes para para numero numero de de alunos alunos p/ p/ turma turma turmadecorada.addmatricula(m); public publicdouble doubleprecovaga() { return return0; 0; public publiccontrato gerarcontrato(string... clausulas) clausulas) { // // Clausulas Clausulas do do Contrato Contrato PJ PJ return returnturmadecorada.gerarcontrato(novasclausulas); public publicvoid voidcancelarmatricula(matricula m) m) { turmadecorada.cancelarmatricula(m); 49

50 Classe de testes public publicclass classexemplodecorator { public publicstatic staticvoid voidmain(string[] args) args) { Turma Turma turma1 turma1 = new newturmapadrao(); TurmaPJ TurmaPJturmaComposta = new newturmapj(turma1); turmacomposta.addmatricula(new Matricula()); Contrato Contrato contrato contrato = turmacomposta.gerarcontrato(); 50

51 Decorator Outros exemplos Nas APIs do Java I/O 51

52 Decorator nas classes de I/O public public class class FilterInputStream FilterInputStream extends extends InputStream InputStream { { protected protected volatile volatile InputStream InputStream in; in; protected protected FilterInputStream(InputStream FilterInputStream(InputStream in) in) { { this.in this.in = = in; in; public public int int read() read() throws throws IOException IOException { { return return in.read(); in.read(); public public void void close() close() throws throws IOException IOException { { in.close(); in.close(); public public class class DataInputStream DataInputStream extends extends FilterInputStream FilterInputStream implements implements DataInput DataInput { { public public DataInputStream(InputStream DataInputStream(InputStream in) in) { { super(in); super(in); public public final final short short readshort() readshort() throws throws IOException IOException { { int int ch1 ch1 = = in.read(); in.read(); int int ch2 ch2 = = in.read(); in.read(); if if ((ch1 ((ch1 ch2) ch2) < < 0) 0) throw throw new new EOFException(); EOFException(); return return (short)((ch1 (short)((ch1 << << 8) 8) + + (ch2 (ch2 << << 0)); 0)); 52

53 Agenda Introdução Catálogos de padrões Design patterns para o dia-a-dia Conclusões 53

54 Conclusões Ao adotar design-patterns... Seu código fica mais organizado Aumenta a qualidade Diminui a complexidade no longo prazo Aumenta a comunicação dentro da equipe de desenvolvimento Facilita a ambientação de novos membros na equipe Aprende com a experiência dos outros 54

55 Mais informações Design Patterns Explained, de Alan Shalloway e James R. Trott Design Patterns Java Workbook, de Steve Metsker Head First Design Patterns Curso Core Patterns Globalcode Mini-curso gratuito Introdução a Design Patterns - Globalcode 55

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

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

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

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

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

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

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

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organizaçã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

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

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

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

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

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

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

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

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

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

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ões de Desenho (Design Patterns)

Padrões de Desenho (Design Patterns) Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 02 APRESENTAÇÃO: Apresentação; conceitos básicos da linguagem java; estrutura

Leia mais

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha

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 Projeto

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções

Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções 1/ Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções Adote as melhores práticas de reuso de soluções com a abordagem de Padrões de Projeto (Design

Leia mais

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005 Java Básico Matrícula de Alunos Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Objetivos OO: trocar mensagens entre os objetos Exception: tratar exceções Análise: implementar

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

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

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

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

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

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

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Padrões Arquiteturais no Java EE 7

Padrões Arquiteturais no Java EE 7 Padrões Arquiteturais no Java EE 7 Vagner F. Le Roy Júnior Curso de Pós Graduação em Arquitetura de Software Distribuído Pontifícia Universidade Católica de Minas Gerais Belo Horizonte, MG Brasil vagnerleroy@gmail.com

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

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos. Programação Orientada a Objetos Utilizando Java Pedro de Alcântara dos Santos Neto e-mail: pasn@ufpi.edu.br Home Page: http:// www.ufpi.br/pasn Relevância e Motivação Técnicas a serem utilizadas na prática

Leia mais

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Orientação a Objetos em Java Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007

Leia mais

Design Patterns (Factory Method, Prototype, Singleton)

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

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

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

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE Nelson Ribeiro de Carvalho Júnior 1 RESUMO Atualmente o cenário mundial cuja dependência do software está cada vez mais evidente requer que

Leia mais

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br TRATAMENTO DE EXCEÇÕES Tratamento de Exceções O tratamento de exceções de Java envolve vários conceitos importantes:

Leia mais

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Manual do Desenvolvedor Criptografia de Arquivos do WebTA Manual do Desenvolvedor Criptografia de Arquivos do WebTA Versão 1.4 Índice 1. Objetivo..3 2. Processo..3 3. API de Criptografia - Biblioteca Java..4 3.1 WEBTACryptoUtil..4 3.1.1 decodekeyfile..4 3.1.2

Leia mais

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

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 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010 Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em

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

Moldura de Objectos. Moldura de Objectos Junit em UML

Moldura de Objectos. Moldura de Objectos Junit em UML Moldura de Objectos Uma PROGXUDGHREMHFWRV é um desenho reutilizável que modela parte de um sistema de software e é descrito por um conjunto de classes abstractas e pela forma como as suas instâncias colaboram

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

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

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

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os

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

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Capítulo 6. Java IO - Ficheiros

Capítulo 6. Java IO - Ficheiros Capítulo 6. Java IO - Ficheiros 1/26 Índice Indice 6.1 - Entrada e saída de dados 6.2 - Ficheiros de texto 6.3 - Ficheiros com formato proprietário 6.4 - A classe File 2/26 Índice 6.1 Entrada e saída de

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

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

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

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

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

3.5. Cuidado com o modelo anêmico

3.5. Cuidado com o modelo anêmico 3.5. Cuidado com o modelo anêmico public Periodo adiaumasemana() { Calendar novofim = (Calendar) this.fim.clone(); novofim.add(calendar.day_of_month, 7); return new Periodo(inicio, novofim); E, com uma

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas (Domain Model e Domain Driven Design) Jadson José dos Santos jadsonjs@gmail.com Natal/RN 2008 Sumário 4 PADRÃO DA CAMADA DE MODELO...

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

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação? Algoritmos e Programação 2 Baseado no material do Prof. Júlio Pereira Machado Introdução à Programação Orientada a Objetos O que é um paradigma de programação? É um padrão conceitual que orienta soluções

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

Análise e Design OO com UML

Análise e Design OO com UML Análise e Design OO com UML Histórico de revisões Data Versão Descrição Autor 03/01/2015 1.3 Revisão e atualização HEngholmJr 24/12/2011 1.0 Criação da primeira versão HEngholmJr 9/1/2012 1.1 Correçã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

Programação Java. com Ênfase em Orientação a Objetos. Douglas Rocha Mendes. Novatec

Programação Java. com Ênfase em Orientação a Objetos. Douglas Rocha Mendes. Novatec Programação Java com Ênfase em Orientação a Objetos Douglas Rocha Mendes Novatec Sumário Agradecimentos... 13 Sobre o autor... 14 Prefácio... 15 Capítulo 1 Introdução à linguagem Java... 16 1.1 Histórico

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

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40 JAVA Marcio de Carvalho Victorino 1/40 Introdução 2/40 Page 1 Programação OO Elementos do modelo OO: Abstração: é o processo de abstrair as características essenciais de um objeto real. O conjunto de características

Leia mais

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android MVVM_ Implementando o padrão de projeto MVVM com Android Binding Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android O padrão de projeto MVVM O MVVM (Model-View-ViewModel) foi divulgado

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

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM NOVEMBRO / 2014 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,

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

J550 Integração com Bancos de Dados

J550 Integração com Bancos de Dados J550 Integração com Bancos de Dados Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Objetivos Este módulo apresenta estratégias para conectar servlets com a camada de dados usando um DAO - Data

Leia mais

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Pessoal, fiz uma coletânea das questões mais recentes de concursos públicos de TODO o Brasil de várias bancas diferentes sobre os assuntos Orientação

Leia mais