PADRÕES DE PROJETO. Prof.: Jean Carlo Mendes
|
|
- Yago Aníbal de Oliveira Barroso
- 8 Há anos
- Visualizações:
Transcrição
1 PADRÕES DE PROJETO Prof.: Jean Carlo Mendes
2 Implementação Padrões Factory Vamos utilizar o exemplo do livro Head First! Design Patterns e implementá-lo em Java...
3 Implementação Padrões Factory Vamos construir um sistema para uma pizzaria. O sensato é começar com algo como: Pizza orderpizza () { Pizza pizza = new Pizza (); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza;
4 Implementação Padrões Factory Mas, obviamente a pizzaria deve ter vários sabores de pizza, então precisamos de construir um código para permitir a escolha da Pizza para só então prepará-la...
5 Pizza orderpizza (String type) { Pizza pizza; if (type.equals( cheese )) { pizza = new CheesePizza(); O tipo de pizza é passado como parâmetro else if (type.equals( greek ) { pizza = new GreekPizza(); else if (type.equals( pepperoni )) { pizza = new PepperoniPizza(); Baseado no tipo de pizza a classe Concreta apropriada é instanciada pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; Uma vez criada a pizza, ela pode ser preparada. Cada subtipo de pizza sabe como se preparar.
6 Com o mercado de pizza competitivo, novos sabores devem ser criados. Alguns sabores podem desaparecer, devido a baixa procura. Nos dois casos, temos que alterar nosso código para poder fornecer os sabores adequados...
7 Pizza orderpizza (String type) { Pizza pizza; if (type.equals( cheese )) { pizza = new CheesePizza(); else if (type.equals( greek )) { pizza = new GreekPizza(); else if (type.equals( clam )){ pizza = new ClamPizza(); else if (type.equals( veggie )){ pizza = new VeggiePizza(); else if (type.equals( pepperoni )) { pizza = new PepperoniPizza(); Esta parte do código vai sofrer alterações constantemente! pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; Esta parte do código vai fica estática por muito tempo...
8 Fica adicionando classes concretas e decidindo qual delas instanciar, vai deixar o código difícil de manter. Como sabemos qual parte do código está variando, podemos então tentar fazer um encapsulamento! Por que então não movemos o código de criação das pízzas para outro local? Este local seria um local de criação de pizzas (estamos começando a criar nossa fábrica)...
9 Pizza orderpizza (String type) { // Retiramos então o código daqui... pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza;
10 Vamos agora criar um objeto que será o responsável pela criação das pizza. A fábrica irá lidar com os detalhes de criação da pizza, vamos chamá-lo de SimplePizzaFactory. Com esta fábrica criada, nosso método orderpizza() se tornará um cliente dela. Toda vez que orderpizza() precisar de uma pizza, ele pedirá à fábrica a sua criação...
11 public class SimplePizzaFactory { public Pizza createpizza(string type){ Pizza pizza = null; if(type.equals( cheese )){ Este será o método usado pelos clientes quando quiserem a criação de uma pizza = new CheesePizza(); pizza! else if(type.equals( pepperoni )){ pizza = new PepperoniPizza(); else if(type.equals( clam )){ pizza = new ClamPizza(); else if(type.equals( veggie )){ pizza = new VeggiePizza(); return pizza
12 Ao ver o código nos perguntamos: Não ficou a mesma coisa, só em outro lugar?? A resposta é simples: Lembremos que o SimplePizzaFactory poderá ter muitos clientes (só vimos o orderpizza), como por exemplo, pizzashopmenu, ou qualquer outro. Nestes casos estes clientes precisam apenas conhecer uma coisa: A chamada ao método criarpizza!
13 Agora podemos voltar ao nosso código da classe PizzaStore e fazer os ajustes... (Lembrem daquele código de orderpizza de onde tiramos a criação das pizzas...vamos voltar a ele..)
14 public class PizzaStore { SimplePizzaFactory factory; public PizzaStore (SimplePizzaFactory factory) { this.factory = factory; public Pizza orderpizza (String type) { Pizza pizza; pizza = factory.createpizza(type); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; orderpizza(), agora usa a fábrica para solicitar a criação da pizza, fornecendo o tipo como parâmetro
15
16 O próximo passo agora é permitir que franquias de nossa pizzaria possam fazer as pizzas com os estilos regionais delas... Uma pizza mais crocante em NY e com mais queijo em Chicago por exemplo. Uma abordagem possível é criar fábricas diferentes..., uma cada região
17
18 A abordagem anterior funciona bem...ter uma fábrica para cada região, porem, trouxe problemas. Cada fábrica estava fabricando as pizzas à sua maneira. Umas assando demais, outras usando caixas de embalagem de qualidade ruim... A solução: ter maior controle sobre o processo de criação, porém, garantindo a flexibilidade... Para isto vamos voltar o método createpizza() para dentro de PizzaStory, porém, desta vez ele será abstrato.. à partir dai, criamos subclasses para cada estilo regional...
19
20 Agora precisaremos das subclasses regionais Notem que cada sublclasse sobrescreve o createpizza(); Mas o orderpizza() é o mesmo...
21 Vamos ver o exemplo de código...
22
23 Com alguns ajustes em nossa Classe PizzaStore, podemos iniciar a declaração de nossa Fábrica (Factory Method)...
24
25 O Factory Method manipula a criação dos objetos e o encapsula em uma subclasse. Isto desacopla o código de criação do código cliente
26 Quais seriam então os passos para comprar uma pizza? Precisamos de uma instância de PizzaStore, que pode ser uma instância de ChicagoPizzaStore ou NYPizzaStore. Com a instância apropriada, podemos fazer o pedido através do método orderpizza() passando como parâmetro o sabor desejado. Para criar as pizzas, o método createpizza() é chamado que é definido dentro das duas subclasses (ChicagoPizzaStore e NYPizzaStore)
27 O método orderpizza() não sabe qual tipo de pizza foi criado, mas ele sabe que é uma pizza e sabe prepara-la, assar, cortar, encaixotar... Logo, o mesmo passo a passo em código seria: PizzaStore nypizzastore = new NYPizzaStore(); Isto nos dá uma nova instância de NYPizzaStore Agora com a store, podemos fazer o pedido: nypizzastore.orderpizza( cheese ); O método orderpizza() então chama o método createpizza() Pizza pizza = createpizza( cheese ); Lembrando que o createpizza() que é nosso método fábrica, está na subclasse e neste caso, retorna uma NYCheesePizza
28 Finalmente nós temos uma pizza não preparada, então fazemos chamada a: pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box() Bom, agora só nos restar criar uma de nossas principais classes: Pizza!
29 public abstract class Pizza { String name; String dough; String sauce; ArrayList toppings = new ArrayList(); void prepare () { System.out.println( Preparing + name); System.out.println( Tossing dough + dough); System.out.println( Adding Sauce + sauce); System.out.println(Adding toppings ); for (int i = 0; i < toppings.size(); i++) { System.out.println( + toppings.get(i));...continua...
30 void bake() { System.out.println( Bake for 25 minutes at 350 degrees ); void cut () { System.out.println( Cutting the pizza into diagonal slices ) void box () { System.out.println( Place pizza in official PizzaStore box ) public String getname() { return name;
31 Agora nossas subclasses concretas... Public class NYStyleCheesePizza extends Pizza { public NYStyleCheesePizza () { name= NY Style Sauce and Cheese Pizza ; dough = Thin Crust Dough ; sauce = Marinara Sauce ; toppings.add( Grated Reggiano Cheese );
32 Agora nossas subclasses concretas... Public class ChicagoStyleCheesePizza extends Pizza { public ChicagoStyleCheesePizza () { name= Chicago Style Deep Dish Cheese Pizza ; dough = Extra Thick Crust Dough ; sauce = Plum Tomato Sauce ; toppings.add( Shredded Mozzarela Cheese ); void cut () { System.out.println( Cutting the pizza into square slices );
33 Public class PizzaTestDrive { public static void main (String [] args) { PizzaStore nystore = new NYPizzaStore(); PizzaStore chicagostore = new ChicagoPizzaStore(); Pizza pizza = nystore.orderpizza( cheese ); System.out.println( Você comprou uma + pizza.getname() + \n ); pizza = chicagostore.orderpizza( cheese ); System.out.println( Agora você comprou uma + pizza.getname() + \n );
34
35
36
37 Nossa primeira atividade. Implementar o código completo de nossa PizzaStore... Tomar como base os códigos do livro. Deverá ter ChicagoPizzaStore, NYPizzaStore, CaliforniaPizzaStore, LafaietePizzaStore... No minimo 4 sabores de pizza A classe pizzatestedrive deve ser implementada para testar o código... Data 16/05/2011
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 maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisPrototype, 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 maisEncapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Leia maisSistemas de Apoio à Decisão
Sistemas de Apoio à Decisão Processo de tomada de decisões baseia-se em informação toma em consideração objectivos toma em consideração conhecimento sobre o domínio. Modelar o processo de tomada de decisões
Leia maisAbstract Factory Pattern
Abstract Factory Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Comandar uma franquia não é bolinho Estava tudo muito bom com a franquia
Leia maisUm Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br
Um Exemplo de Refatoração Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br Exemplo Programa para calcular e imprimir o valor devido por um cliente de uma vídeo locadora Filme códigopreço:int 1 * * 1 Locação
Leia maisProgramaçã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 maisComputação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
Leia maisFactory Method. Edeyson Andrade Gomes www.edeyson.com.br
Factory Method Edeyson Andrade Gomes www.edeyson.com.br Agenda Resumo Quando Usar Participantes Colaborações Conseqüências Exemplo Estrutura Genérica Exercício 2 Resumo Ao invés do cliente instanciar objetos
Leia maisAná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 mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisUm objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;
um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,
Leia maisAnálise de Programação
Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros
Leia maisAutor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia maisAlgoritmos 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 maisVisual Basic.NET Programação Orientada a Objetos Lista de Exercícios
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios A lista de questões a seguir aborda a criação de
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.
Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para
Leia maisUNIVERSIDADE 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: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
Leia maisA ) 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 maisSintaxe 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 maisPROGRAMAÇÃO ORIENTADA A OBJETO EM PHP
PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP O PHP através da versão 5, veio desenvolvido com suporte a programação orientada a objetos. O que significa isso? Que a partir da versão 5 é possível criar bibliotecas
Leia maisINF011 Padrões de Projeto. 02 Creational Patterns
INF011 Padrões de Projeto 02 Creational Patterns Sandro Santos Andrade sandroandrade@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica
Leia maisProgramação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus
Programação Orientada a Objetos: Lista de exercícios #1 Bruno Góis Mateus 1 Contents Programação Orientada a Objetos (Bruno Góis Mateus ): Lista de exercícios #1 Classes e Instanciação 3 A classe Circle...............................................
Leia maisTratamento de Eventos
Tratamento de Eventos Prof. Marcelo Cohen 1. Visão Geral Para implementar a funcionalidade de uma interface gráfica, pode-se fazer uso de uma repetição sem fim: Faz algum processamento Verifica se o mouse
Leia maisHeranç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 maisParadigmas 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 mais2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.
Geração de Código para Smallpascal a 1. Já estudamos como SableCC faz uso do design pattern visitor para construir compiladores modulares. Vimos também os principais componentes da máquina virtual Java
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisUm jogo de preencher casas
Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos
Leia maisExemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame
6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java
Leia maisVetores. Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br
Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br Nem sempre os tipos básicos: (inteiro, real, caracter e lógico) são suficientes para implementar um algoritmo. Por exemplo: Considere
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Leia maisTé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 maisTipos de Dado Abstrato: Listas, Filas e Pilhas
Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e
Leia mais5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
Leia maisinsfcanceof 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 maisAula 4 Estatística Conceitos básicos
Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a
Leia maisOBJETIVO VISÃO GERAL SUAS ANOTAÇÕES
OBJETIVO Assegurar a satisfação do cliente no pós-venda, desenvolvendo um relacionamento duradouro entre o vendedor e o cliente, além de conseguir indicações através de um sistema de follow-up (acompanhamento).
Leia maisProva 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 maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisEXERCÍ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 maisClasses Abstratas e Interfaces
Java Básico Classes Abstratas e Interfaces Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Classe abstrata Recurso avançado da OO Não pode ser instanciada Deve ser instanciada
Leia maisProjeto 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 maisTrabalhando com menus e caixas de diálogos
Trabalhando com menus e caixas de diálogos Neste laboratório, você vai aprender: Criar menus para aplicativos Microsoft Windows Presentation Fundation (WPF) utilizando as classes Menu e MenuItem. Realizar
Leia maisNoções sobre Objetos e Classes
Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão
Leia maisUniversidade 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 maisComandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }
Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisFigure 2 - Nós folhas de uma árvore binária representando caracteres ASCII
A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code
Leia maisReuso 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 maisJava 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
Leia maisJava Threads. Introdução
Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização
Leia maisTop Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV
Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV 1ª Edição (v1.4) 1 Um projeto de segurança bem feito Até pouco tempo atrás o mercado de CFTV era dividido entre fabricantes de alto custo
Leia maisPontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 3 Prof. ISVega Fevereiro de 2004 Estilo de Codificação CONTEÚDO 3.1 Regras
Leia maisEspecificação do Trabalho
Especificação do Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação, ligação,
Leia maisBancos de Dados: impossível viver sem eles...
Bancos de Dados: impossível viver sem eles... Vanessa Braganholo vanessa@ic.uff.br Vocês já sabem programar... Problema: eu preciso calcular a média de uma turma de Estruturas de Dados II public static
Leia maisThreads e Concorrência em Java (Material de Apoio)
Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto
Leia maisEstrutura Condicional em Java
Estrutura Condicional em Java Linguagem de Programação 1 O Java contém três tipos de instruções de seleção. A instrução if realiza uma ação se uma condição for verdadeira ou pula a ação se a condição for
Leia maisDesenvolvimento OO com Java Orientação a objetos básica
Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Leia maisProgramação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br
Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Encapsulamento Programação Orientada
Leia maisInfluenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:
O Paradigma Orientado a Objetos Paradigma e Programação Orientada a Objetos Prof. João Carlos Pinheiro jcpinheiro@ifma.edu.br 1 Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo
Leia maisClasses, Superclasses e Subclasses
Herança Herança A idéia é criar novas Classes construindo-as sobre outras existentes Ao herdar de uma classe, reusamos (herdamos) seus métodos E podemos adicionar novos métodos e campos para adaptar a
Leia maisListas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Leia maisMó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 maisTabelas vista de estrutura
Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista
Leia maisObjectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs
Interfaces Gráficas e Eventos - 1 Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs - Utilizar as classes JFrame, JButton, JLabel, ImageIcon,
Leia maisTutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10
Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212 Londrina
Leia maisLinguagem 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 maisUsando o do-file editor Automatizando o Stata
Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar
Leia maisLeitura. Capítulo 7 (Prog. Orient. a Obj. usando Java - 4th Edition)
QUALIDADE DE CÓDIGO Leitura Capítulo 7 (Prog. Orient. a Obj. usando Java - 4th Edition) Principais conceitos a serem abrangidos slide 3 Design baseado na responsabilidade Acoplamento Coesão Refatoração
Leia maisTCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes. Conteúdo: Tipos Genéricos
Programação de Computadores II TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes Conteúdo: Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof.
Leia maisPMBoK Comentários das Provas TRE-PR 2009
PMBoK Comentários das Provas TRE-PR 2009 Comentário geral: As provas apresentaram grau de dificuldade médio. Não houve uma preocupação da banca em aprofundar os conceitos ou dificultar a interpretação
Leia maisMÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS
MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIS Como vimos no módulo 1, para que nós possamos extrair dos dados estatísticos de que dispomos a correta análise e interpretação, o primeiro passo deverá ser a correta
Leia maisProgramaçã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 maisLista 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 maisDisciplina Técnicas de Modelagem
T É C N I C A 3 MODELAGEM CONCEITUAL GENERALIZAÇÃO/ESPECIALIZAÇÃO, AGREGAÇÃO E COMPOSIÇÃO Generalização/Especialização Herança é o termo em orientação a objetos que se refere à criação de novas classes
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisLÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br
LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisTHREADS EM JAVA. George Gomes Cabral
THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores
Leia maisCOMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I
COMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I O que é o Índice de Sharpe? Como calcular o Índice de Sharpe? Revisão do conceito de risco. O desvio-padrão como medida de risco. Autor:
Leia maisNORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013
NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013 Dispõe sobre trabalho de compilação de informações contábeis. O CONSELHO FEDERAL DE CONTABILIDADE, no exercício de suas atribuições
Leia mais7 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 maisApêndice A Objetivos PEI
A Apêndice A Objetivos PEI Legenda: (A) = aluno; R+ = reforçador; E = esquerda; D = direita Sistema de Comunicação por Troca de Figuras (PECS) Objetivos - Amostra (A)luno: Local: Fase Fase I Ao ver e
Leia maisHeranç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 maisPROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com
PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia maisRealizando cálculos para o aparelho divisor (I)
Realizando cálculos para o aparelho divisor (I) A UU L AL A Você já estudou como fazer os cálculos para encontrar as principais medidas para a confecção de uma engrenagem cilíndrica de dentes retos. Vamos
Leia maisLinguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.
Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Tipos de dados Os programas manipulam dados, armazenando-os
Leia maisProgramação de Computadores e Robocode. http://www.lac.inpe.br/~rafael.santos
Programação de Computadores e Robocode 1 O que é Programação de Computadores? O que é um programa de computador? Quem escreve estes programas? Como são escritos? O que podemos fazer com estes programas?
Leia maisPCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA
ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais PCS - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA EXERCÍCIO PROGRAMA
Leia maisSISTEMA BRENA DE AUTOMAÇÃO COMERCIAL
SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL VERSÃO 359 U N I P A C K NOTA FISCAL ELETRÔNICA CONTENDO ITENS COM CFOP S DISTINTOS RIO DE JANEIRO 25 DE JULHO DE 2013 SUMÁRIO 1- INTRODUÇÃO... 03 2- MOTIVAÇÃO... 03
Leia maisCasos de uso Objetivo:
Casos de uso Objetivo: Auxiliar a comunicação entre os analistas e o cliente. Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no diagrama de
Leia maisLaboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9
Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através
Leia maisKeeper of Knowledge. Capítulo 2 Classes em Java
Capítulo 2 Classes em Java INTRODUÇÃO Uma classe é um conjunto de software que representa uma realidade qualquer, que pode ser representada por números e símbolos. Uma classe possui dados de um ou mais
Leia maisMaterial de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)
pg. 1/6 Material de Apoio 5 Herança Observe o código das classes Fatorial e Fibonacci apresentados abaixo. class Fatorial { class Fibonacci { private int n, res; private int n, res; public Fatorial( int
Leia mais