Factory Method. Edeyson Andrade Gomes

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

Download "Factory Method. Edeyson Andrade Gomes www.edeyson.com.br"

Transcrição

1 Factory Method Edeyson Andrade Gomes

2 Agenda Resumo Quando Usar Participantes Colaborações Conseqüências Exemplo Estrutura Genérica Exercício 2

3 Resumo Ao invés do cliente instanciar objetos através da chamada a new, ficando acoplado com a classe concreta que ele instancia, ele chama um método de criação (FactoryMethod). 1. carro = new Carro() 2. O objeto carro é uma instância da classe concreta Carro. Isso está pré-determinado neste código. Exemplo Acoplado 3

4 Resumo Ao invés do cliente instanciar objetos através da chamada a new, ficando acoplado com a classe concreta que ele instancia, ele chama um método de criação (FactoryMethod). E se o objetivo é instanciar carro com uma classe concreta determinada em tempo de execução: 1. carro = criacarro() 2. O método criacarro pode criar um carro tendo como retorno um Carro Abstrato. Logo, criacarro concreto determina qual carro concreto criar. criacarro() é um Factory Method 4

5 Resumo Usando o Factory Method, uma classe cria um objeto pelo TIPO Abstrato e uma subclasse concreta sua determina qual a classe concreta do objeto a criar. public abstract Assento CriaAssento(); public Assento CriaAssento() { } return new AssentoMadeira() ; Mudar a subclasse concreta que cria o objeto permite mudar a classe do objeto criado 5

6 Quando Usar Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar Quando uma classe quer que suas subclasses especifiquem os objetos criados 6

7 Participantes Produto Define a interface (o TIPO) dos objetos criados pelo Factory Method ICano ProdutoConcreto Implementa a interface Produto Cano da Tigre Criador Declara o Factory Method que retorna um objeto do tipo Produto Encanamento 7

8 Participantes Às vezes, o Criador não é abstrato Pode envolver uma classe concreta que tenha uma implementação padrão para o Factory Method para retornar um objeto com algum tipo ProdutoConcreto CriadorConcreto Faz override do Factory Method para retornar uma instância de ProdutoConcreto 8

9 Colaborações Criador depende de suas subclasses para definir o Factory Method para que ele retorne uma instância do ProdutoConcreto apropriado 9

10 Conseqüências Factory Method elimina a necessidade de colocar classes específicas da aplicação no código O código só lida com o TIPO Produto O código pode funcionar com qualquer classe ProdutoConcreto Provê ganchos para subclasses Criar objetos dentro de uma classe com um Factory Method é sempre mais flexível do que criar objetos diretamente O Factory Method provê um gancho para que subclasses forneçam uma versão estendida de um objeto 10

11 Exemplo 11

12 Estrutura Genérica 12

13 Exercício Deseja-se criar uma Casa que possua Salas, Quartos, Paredes e Portas, que podem ser construídas em Aço, Vidro ou Madeira. Casa de Aço possui Salas, Quartos, Paredes e Portas de Aço. O projeto inicial da Casa deve ter duas Salas e dois Quartos, com paredes com e sem porta, como apresenta a Figura

14 Exercício Embora simplório, mas didático, o projeto em UML será o seguinte: PortaAB aberta : boolean nomeclasse : Logical View::java::lang::String abrir() fechar() estaaberta() entrar() ParedeAB nomeclasse : Logical View::java::lang::String ParedeAB() ParedeAB() entrar() #porta paredenorte -paredeoeste -paredeleste -paredesul -paredenorte -paredeoeste -paredeleste -paredesul QuartoAB nomeclasse : Logical View::java::lang::String SalaAB nomeclasse : Logical View::java::lang::String entrar() setparedenorte() setparedesul() setparedeleste() setparedeoeste() -quarto1 -quarto2 Casa Casa() entrar() setparedenorte() setparedesul() setparedeleste() setparedeoeste() -sala1 -sala2 14

15 Exercício Construir Casa de Madeira, de Vidro e de Aço com a estrutura da Figura 01 15

16 public class CasaMadeira { /* Atributos da Casa */ private QuartoAB quarto1, quarto2; private SalaAB sala1, sala2; /* O construtor CasaMadeira é responsável por determinar a estrutura da Casa e os * Objetos Concretos (de Madeira) a usar em sua construção. Note que Estrutura e * Objeto Concreto da construção estão Acoplados. */ public CasaMadeira() { PortaAB porta = new PortaMadeira(); ParedeAB parede = new ParedeMadeira(porta); sala1 = new SalaMadeira(); sala2 = new SalaMadeira(); quarto1 = new QuartoMadeira(); quarto2 = new QuartoMadeira(); sala1.setparedesul(parede); sala2.setparedenorte(parede); sala1.setparedenorte(new ParedeMadeira()); sala1.setparedeoeste(new ParedeMadeira()); O construtor CasaMadeira() determina TODO objeto concreto a usar através de NEW. Ou seja, todos os objetos concretos são de madeira.. } 16 } porta = new PortaMadeira(); parede = new ParedeMadeira(porta); sala2.setparedeoeste(parede); sala2.setparedesul(new ParedeMadeira()); porta = new PortaMadeira();...

17 Exercício Vale ressaltar que toda variável definida em CasaMadeira() é definida pelo TIPO ABSTRATO, não por um TIPO CONCRETO. Isso permite variar, no futuro, o tipo concreto a usar. Problemas com a solução: Deseja-se construir uma casa de Vidro com a mesma estrutura da Figura 01. Questão: O que será reusado do código da Casa de Madeira? Vamos à solução! 17

18 public class CasaMadeira { /* Atributos da Casa */ private QuartoAB quarto1, quarto2; private SalaAB sala1, sala2; public CasaMadeira() { PortaAB porta = new PortaMadeira(); ParedeAB parede = new ParedeMadeira(porta); sala1 = new SalaMadeira(); sala2 = new SalaMadeira(); quarto1 = new QuartoMadeira(); quarto2 = new QuartoMadeira(); sala1.setparedesul(parede); sala2.setparedenorte(parede); sala1.setparedenorte(new ParedeMadeira()); sala1.setparedeoeste(new ParedeMadeira()); porta = new PortaMadeira(); parede = new ParedeMadeira(porta); public class CasaVidro { /* Atributos da Casa */ private QuartoAB quarto1, quarto2; private SalaAB sala1, sala2; public CasaVidro() { PortaAB porta = new PortaVidro(); ParedeAB parede = new ParedeVidro (porta); sala1 = new SalaVidro(); sala2 = new SalaVidro(); quarto1 = new QuartoVidro(); quarto2 = new QuartoVidro(); sala1.setparedesul(parede); sala2.setparedenorte(parede); sala1.setparedenorte(new ParedeVidro()); sala1.setparedeoeste(new ParedeVidro()); porta = new PortaVidro(); parede = new ParedeVidro(porta); } 18 sala2.setparedeoeste(parede); sala2.setparedesul(new ParedeMadeira()); porta = new PortaMadeira();... } sala2.setparedeoeste(parede); sala2.setparedesul(new ParedeVidro()); porta = new PortaVidro();... } }

19 Exercício Deseja-se, agora, construir uma casa de Aço com a mesma estrutura da Figura 01. Questão: O que será reusado da Casa de Madeira ou Vidro? Vamos à solução (Eclipse) Problemas 1. Se a estrutura da Casa mudar, quantas classes temos de mudar? Resp: Mudar as três. 2. Se quisermos construir Casas de Aço, Madeira e Vidro com um quarto e uma sala, ou seja, uma nova estrutura, quantas classes novas necessitamos? Resp: Três (uma de Madeira, uma de Vidro e uma de Aço). Qual a solução a esses problemas? 19

20 Exercício Por que a solução está acoplada? Resp: Define-se a estrutura e a classe concreta do objeto concreto a usar através de NEW. Como deixar que em tempo de execução o objeto concreto seja determinado? Resp: usando métodos de criação. Ex. Usar TipoXAbstrato objetox = criaobjetox(); criaobjetox cria um objetox e retorna pelo TIPO. public TipoXAbstrato criaobjetox() {...} 20

21 Exercício Vamos para a solução desacoplada: Casa2S2Q - cria uma casa com duas Salas e Dois Quartos. Define a Estrutura sem determinar o objeto concreto. Casa2S2Q define a estrutura da casa. São os factory methods que vão determinar, nas subclasses de Casa2S2Q, via override, que objeto concreto criar. Vamos criar uma subclasse de Casa2S2Q para determinar os objetos concretos. Vamos criar uma casa de Madeira. Casa2S2QMadeira especializa Casa2S2Q e determina que os objetos concretos criados nos factory methods são de madeira. Vamos criar uma casa de Madeira com porta de Madeira Ornamentada. Casa2S2QMadeiraOrnamentada especializa Casa2S2QMadeira e determina que a porta é Ornamentada e os objetos concretos criados nos factory methods são de madeira, herdando de Casa2S2QMadeira. 21

22 Exercício Novas Questões 1.Se a estrutura da Casa mudar, quantas classes temos de mudar? Resp: Mudar somente uma, Casa2S2Q. 2. Se quisermos construir Casas com um quarto e uma sala, quantas classes necessitamos? Resp: Cinco (uma para construir a estrutura, uma subclasse de Madeira, uma subclasse de MadeiraOrnamentada, uma subclasse de Vidro e uma subclasse de Aço). Desafio: Construir Casas com um Quarto e uma Sala já usando o padrão Casa1S1Q no Eclipse 22

23 Exercício Vamos construir Casa de um Quarto e uma Sala de Madeira. Ao usar extends determinamos que estrutura vamos usar. Os Factory Methods determinam o que? Resp: Os objetos concretos a usar na construção da estrutura. Podemos notar que o código de Casa1S1QMadeira e Casa2S2QMadeira são idênticos. Podemos notar que o código de Casa1S1QAço e Casa2S2QAço são idênticos. 23

24 Exercício Note que para qualquer casa criada, com qualquer estrutura, suas subclasses serão iguais. Subclasses de Aço implementam os mesmos métodos, independendo da estrutura da Casa. Vamos tirar a responsabilidade de criar o objeto concreto da subclasse e colocar numa classe que é uma Fábrica de Objetos. Faremos Fábricas que constroem objetos de Aço para casas de aço, independendo de estrutura, Fábricas de Madeira, Vidro, etc. 24

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

Profº. Enrique Pimentel Leite de Oliveira

Profº. Enrique Pimentel Leite de Oliveira Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam

Leia mais

Abstract Factory. Edeyson Andrade Gomes

Abstract Factory. Edeyson Andrade Gomes Abstract Factory Edeyson Andrade Gomes www.edeyson.com.br Introdução Objetivo Prover uma interface para criar uma família de objetos relacionados ou dependentes sem especificar suas classes concretas Também

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

INF011 Padrões de Projeto. 02 Creational Patterns

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

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º 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,

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Padrões de Projeto. Singleton

Padrões de Projeto. Singleton Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação

Leia mais

Disciplina Técnicas de Modelagem

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

Figura 1. A Classe Java

Figura 1. A Classe Java Conexã o com MySQL Connection Factory Para criar as conexões com o banco de dados será utilizado um padrão chamado Factory, onde através dele se terá uma única classe que proverá uma fábrica de conexão

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

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

Abstract Factory Pattern

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

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Classes Abstratas Técnico em Informática, M.Sc. Classes Abstratas 2 Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus

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

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

Programação Orientada a Objetos em Java. Herança

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

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

Orientação a Objetos

Orientaçã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 mais

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

PROGRAMAÇÃ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 mais

Classes Abstratas e Interfaces

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

PADRÕES DE PROJETO. Prof.: Jean Carlo Mendes carlomendes@yahoo.com.br http://www.jeancarlomendes.com.br

PADRÕES DE PROJETO. Prof.: Jean Carlo Mendes carlomendes@yahoo.com.br http://www.jeancarlomendes.com.br PADRÕES DE PROJETO Prof.: Jean Carlo Mendes carlomendes@yahoo.com.br http://www.jeancarlomendes.com.br Implementação Padrões Factory Vamos utilizar o exemplo do livro Head First! Design Patterns e implementá-lo

Leia mais

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos OO -Objetos, classes, atributos, métodos, estado, comportamento e identidade (Slide) Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Programas eram lineares e com poucos

Leia mais

Padrão Básico de Projeto: Herança versus Composição

Padrão Básico de Projeto: Herança versus Composição Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),

Leia mais

Programação Orientada a Objetos (DPADF 0063)

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

Leia mais

ENGENHARIA DA COMPUTAÇÃO

ENGENHARIA DA COMPUTAÇÃO ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 2 Prof. Msc. Ricardo Antonello ABORDAGEM ER A primeira etapa do projeto de um banco de dados é a construção de um modelo conceitual ou modelagem conceitual.

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

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

Decorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA

Decorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento

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

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

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

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

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II Padrões de Projeto Padrão Decorator (Decorador) Adiciona responsabilidades de forma

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Material 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

Criar alertas de suprimentos e serviço

Criar alertas de suprimentos e serviço Criar alertas de suprimentos e serviço Para criar alertas de suprimentos e ser avisado quando o toner está próximo de acabar ou problemas com os dispositivos, sabendo antecipadamente o código de erro que

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

BANCO DE DADOS I AULA 3. Willamys Araújo

BANCO DE DADOS I AULA 3. Willamys Araújo BANCO DE DADOS I AULA 3 Willamys Araújo Modelo Conceitual Descreve quais dados serão armazenados no banco de dados as relações que existem entre eles. Independe do SGBD e da abordagem do banco de dados

Leia mais

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

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

Java 2 Standard Edition Como criar classes e objetos

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

UML: Diagrama de Casos de Uso, Diagrama de Classes

UML: Diagrama de Casos de Uso, Diagrama de Classes UML: Diagrama de Casos de Uso, Diagrama de Classes Diagrama de Casos de Uso O modelo de casos de uso visa responder a pergunta: Que usos (funcionalidades) o sistema terá? ou Para que aplicações o sistema

Leia mais

Caso já seja usuário do SCAW siga as instruções a partir da página X.

Caso já seja usuário do SCAW siga as instruções a partir da página X. Caso já seja usuário do SCAW siga as instruções a partir da página X. Para iniciar o sistema dê um duplo clique no ícone, que se encontra na área de trabalho. 1 Login do sistema. Esta é a tela de login

Leia mais

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP Laboratório de ENGSOF Estudo de Caso Aula de Hoje: Desenvolver um sistema UML inteiro: Aplicação Banco Online. Nosso Estudo de Caso! RSA V7.5 O que será feito para o projeto? 1) Criando um Projeto UML:

Leia mais

Máscaras de sub-rede. Fórmula

Máscaras de sub-rede. Fórmula Máscaras de sub-rede As identificações de rede e de host em um endereço IP são diferenciadas pelo uso de uma máscara de sub-rede. Cada máscara de sub-rede é um número de 32 bits que usa grupos de bits

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

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

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

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Relatório do GPES. Arquitetura Geral do Framework

Relatório do GPES. Arquitetura Geral do Framework Relatório do GPES UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Relatório referente ao desenvolvimento da arquitetura geral do framework de preço de venda. Realizado no período de 29 de junho de 2010 a 30

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Sumário. Uma visão mais clara da UML

Sumário. Uma visão mais clara da UML Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA Introdução ao Visual Studio VB.Net Programação Estruturada 1 Nesse momento inicial não iremos programar em VB.Net, usando o Visual Studio, mas conhecer alguns comandos e variáveis usadas em uma linguagem

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

DEFINIÇÃO DE MÉTODOS

DEFINIÇÃO DE MÉTODOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

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

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 Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

MANUAL DE UTILIZAÇÃO

MANUAL DE UTILIZAÇÃO MANUAL DE UTILIZAÇÃO Módulo de operação Ativo Bem vindo à Vorage CRM! Nas próximas paginas apresentaremos o funcionamento da plataforma e ensinaremos como iniciar uma operação básica através do nosso sistema,

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

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

Programação Orientada a Objeto

Programação Orientada a Objeto Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso

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

*%# ## (+& ', # )&* ## - () ' #.# %&/.# ' '# () 0 *&# */ #,$1$ # * * ()% " ## # * 23 (), ) 45&26, ' 1#45 6'&#1#&# &7 ; '# *23) 8=9 =()/ / =:7

*%# ## (+& ', # )&* ## - () ' #.# %&/.# ' '# () 0 *&# */ #,$1$ # * * ()%  ## # * 23 (), ) 45&26, ' 1#45 6'&#1#&# &7 ; '# *23) 8=9 =()/ / =:7 A-PDF MERGER DEMO! "# $#%&'&()& '&## *%# ## (+& ', # )&* ## - () ' #.# %&/.# ' '# () 0 *&# */ #,$1$ # * * ()% " ## # * 23 (), ) 45&26, ' 1#45 *) 6'&#1#&# &7 &8 ()9*':7 6'& &*&$8 ; '# *23) #* $45

Leia mais

Planilha Eletrônica Excel

Planilha Eletrônica Excel COLÉGIO LA SALLE CANOAS Técnico em Informática Planilha Eletrônica Excel Excel Prof. Valter N. Silva Colégio La Salle Canoas Página 2 1. NOÇÕES BÁSICAS O Microsoft Excel 7.0 é um programa de planilha eletrônica,

Leia mais

Programação Concorrente

Programação Concorrente + XV Jornada de Cursos CITi Aula 2 Programação Concorrente Benito Fernandes Fernando Castor João Paulo Oliveira Weslley Torres + Agenda Conceitos básicos de Threads em Java Benefícios de Thread Estados,Métodos,

Leia mais

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo

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

SisResEv Sistema de Reserva de Salas para Eventos. Instruções de uso

SisResEv Sistema de Reserva de Salas para Eventos. Instruções de uso UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS HUMANAS - SCH SisResEv Sistema de Reserva de Salas para Eventos Instruções de uso O SisResEv é uma ferramenta online de gerenciamento de reserva de salas

Leia mais

LINGUAGEM DE PROGRAMAÇÃO WEB

LINGUAGEM DE PROGRAMAÇÃO WEB LINGUAGEM DE PROGRAMAÇÃO WEB GABRIELA TREVISAN Aula 4 Imagine a seguinte situação: Precisamos trafegar valores de uma página PHP para outra, porém não temos formulários entre essas páginas. Como fazer

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

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

A apresentação através de fluxos lógicos consegue mostrar mal entendidos e pontos que são controversos.

A apresentação através de fluxos lógicos consegue mostrar mal entendidos e pontos que são controversos. Módulo 5 Análise Estruturada As dificuldades que são causadas por problemas de comunicação, mudanças de requisitos e técnicas inadequadas de avaliação, tornam a análise estruturada uma fase critica no

Leia mais

1 Natuur Online Cadastre-se Nome, Login E-mail Cadastrar.

1 Natuur Online Cadastre-se Nome, Login E-mail Cadastrar. 1 Essa é a tela de acesso do Natuur Online, clique aqui para acessar o site e siga o passo-apasso abaixo. Se esse é o seu primeiro acesso, clique em Cadastre-se. 2 - Preencha os dados solicitados com Nome,

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

Desenvolvimento de Aplicações para Internet Aula 7

Desenvolvimento de Aplicações para Internet Aula 7 Desenvolvimento de Aplicações para Internet Aula 7 Celso Olivete Júnior olivete@fct.unesp.br Classe e tipos de dados Classe Conjunto de objetos semelhantes, isto é, com a mesma estrutura (atributos) e

Leia mais

Relacionamentos entre classes

Relacionamentos entre classes Relacionamentos entre classes Relacionamentos entre classes Relacionamentos estruturais entre classes Precisam ser criteriosamente definidos durante o projeto do software São obtidos a partir da análise

Leia mais

Manual Sistema Mó vel Msys Cómercial

Manual Sistema Mó vel Msys Cómercial Manual Sistema Mó vel Msys Cómercial Maravilha, 2014. 1 Sumário 1. REQUISITOS MÍNIMOS... 3 2. PRINCIPAIS TELAS E FUNCIONALIDADES... 4 2.1.1. Tela de acesso ao sistema.... 4 2.1.2. Tela Principal do Sistema....

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 Inflando layouts Se quisermos um layout mais complexo nas linhas de uma ListView, podemos criar objetos

Leia mais

Configurações de Templates no SolidWorks 2011

Configurações de Templates no SolidWorks 2011 Configurações de Templates no SolidWorks 2011 Esse tutorial tem como intuito a criação de propriedades personalizadas, a criação destas propriedades é uma forma de automatizar o preenchimentos de informações

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

Análise de Programação

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

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

Prof. Rafael Gross. rafael.gross@fatec.sp.gov.br

Prof. Rafael Gross. rafael.gross@fatec.sp.gov.br Prof. Rafael Gross rafael.gross@fatec.sp.gov.br Todo protocolo define um tipo de endereçamento para identificar o computador e a rede. O IP tem um endereço de 32 bits, este endereço traz o ID (identificador)

Leia mais

Primeiramente, vamos saber o que foi utilizado para a confecção do elevador, vamos listar as coisas utilizadas mais importantes:

Primeiramente, vamos saber o que foi utilizado para a confecção do elevador, vamos listar as coisas utilizadas mais importantes: Primeiramente, vamos saber o que foi utilizado para sua confecção, vamos listar as coisas mais importantes que foram utilizadas: Primeiramente, vamos saber o que foi utilizado para a confecção do elevador,

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

Sistema de Avaliação. Manual do Usuário

Sistema de Avaliação. Manual do Usuário Sistema de Avaliação Manual do Usuário Versão 2011 / 2012 1. Apresentação Neste Manual do Sistema de Avaliação estão contidas as instruções para a realização da Avaliação de Desempenho dos empregados da

Leia mais