INF011 Padrões de Projeto. 04 Builder
|
|
|
- Alice Lancastre Alencastre
- 9 Há anos
- Visualizações:
Transcrição
1 INF011 Padrões de Projeto 04 Builder Sandro Santos Andrade Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação Tecnológica em Análise e Desenvolvimento de Sistemas
2 Propósito: Separar a construção de um objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações Motivação: Um editor de arquivos RTF (Rich Text Format) precisa converter arquivos RTF para uma série de outros formatos O número de possíveis conversões é desconhecido Deve ser fácil acrescentar uma nova conversão sem modificar o editor
3 Motivação: Cada conversor implementa os mecanismos para criar e montar o objeto complexo
4 Aplicabilidade: O algoritmo para criar o objeto complexo deve ser independente das partes que compõem o objeto e de como elas são integradas O processo de construção deve permitir diferentes representações do objeto sendo construído
5 Estrutura:
6 Participantes: Builder: especifica a interface abstrata para a criação das partes do objeto produto ConcreteBuilder (ASCIIConverter, TeXConverter, etc): Constrói e monta as partes do objeto através da implementação da interface do Builder Define e mantém as representações que ele cria Disponibiliza uma interface para recuperar o produto Director: constrói o objeto usando a interface do Builder Product (ASCIIText, TeXText): representa o objeto complexo sendo construído e inclui classes que definem as partes constituintes
7 Colaborações: O cliente cria o objeto Director e o configura com o Builder desejado O Director notifica o Builder sempre que uma parte do produto deve ser construída O Builder trata as requisições do Director e adiciona partes ao produto O cliente recupera o produto, através do Builder
8 Colaborações:
9 Consequências: Permite variar a representação interna do produto: O Builder oferece ao Director uma interface abstrata de construção do produto que isola a sua estrutura interna e representação, bem como a forma como ele é construido. Para mudar a representação interna do produto basta utilizar outro Builder concreto Isola o código de construção e representação do produto: O cliente não precisa conhecer nada sobre as classes que definem a representação interna do produto. Tais classes não aparecem na interface do Builder Os mesmos Builders concretos podem ser utilizados por outros Directors para construir os mesmos produtos a partir de outras representações formadas pelas mesmas partes
10 Consequências: Permite um maior controle do processo de construção do produto: Não constrói o objeto com uma única operação e sim através de múltiplos passos, sob o controle do Director Somente ao fim do processo de construção o produto é entregue, pelo Builder, ao cliente A interface do Builder dá maior ênfase ao processo de construção do objeto, se comparado com outros creational patterns
11 Implementação: Interface de construção e montagem: A interface do Builder deve ser geral o suficiente para permitir a construção de produtos por todos os possíveis tipos de Builders Possíveis modelos para o processo de construção e montagem: append, exemplo do labirinto, árvores de parsing (nós retornados pelo Builder e utilizados em invocações futuras), etc Classes abstratas para produtos? Geralmente os produtos criados por diferentes Builders são consideravelmente diferentes, tornando de pouca utilidade o uso de classes abstratas para produtos O cliente sabe qual Builder usar e qual produto obter
12 Implementação: Métodos default vazios na interface do Builder: Os métodos não são virtuais puros (abstratos) pois permite-se que os Builders concretos implementem somente aqueles métodos necessários
13 Código exemplo:
14 Código exemplo:
15 Código exemplo:
16 Código exemplo:
17 Código exemplo:
18 Código exemplo:
19 Código exemplo:
20 Código exemplo:
21 Código exemplo:
22 Código exemplo:
23 Usos conhecidos: Construção de árvores de análise sintática Classes que funcionam ao mesmo tempo como Builder e Director para criar sub-classes delas mesmas
24 Padrões relacionados: Abstract Factory: também podem construir objetos complexos, porém com uma única operação Geralmente o produto criado é um Composite
25 INF011 Padrões de Projeto 04 Builder Sandro Santos Andrade Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação Tecnológica em Análise e Desenvolvimento de Sistemas
INF011 Padrões de Projeto. 03 Abstract Factory
INF011 Padrões de Projeto 03 Abstract Factory Sandro Santos Andrade [email protected] Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação
Creational Patterns Factory method
Objetivo do Factory method é definir qual será a subclasse que utilizada um cliente. Permite que o sistema funcione sem o conhecimento prévio das subclasses. Assim um framework pode ser construído apenas
Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter
INF011 Padrões de Projeto. 21 Memento
INF011 Padrões de Projeto 21 Memento Sandro Santos Andrade [email protected] Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação
INF011 Padrões de Projeto. 02 Creational Patterns
INF011 Padrões de Projeto 02 Creational Patterns Sandro Santos Andrade [email protected] Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica
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
Padrões de Design. Padrões de Design. Abstract Factory. Padrões de Design. Padrões de Design Abstract Factory. Abstract Factory.
Escopo Classe Objeto Finalidade Criação Estrutural Comportamental Factory Method Interperter Abstract Factory Builder Prototype Bridge Composite Facade Flyweight Proxy Chain of Responsibility Command Iterator
Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões
DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para
Profa. Thienne Johnson
Profa. Thienne Johnson 1 E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison- Wesley, 1995. GoF Design Patterns - with examples
ALUNO: RONI FABIO BANASZEWSKI
Model-View-Controller ALUNO: RONI FABIO BANASZEWSKI Objetivo Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma
Mas o que é mesmo Padrão de Projeto?
Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype
Factory Pattern. SISMO - Sistemas e Mobilidade Junho de Departamento de Informática / UFMA
Factory Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Do que vamos tratar? Criação de objetos não é simplesmente usar o operador
Padrões de Projeto. Factory Method
Padrões de Projeto Padrões de Criação Factory Method Prof. Eduardo N F Zagari Prof. Ivan Granja Factory Method Também conhecido como Construtor Virtual Em muitas aplicações OO, um objeto cliente precisa
Abstract Factory. Prover uma interface para criar uma família de objetos relacionados ou dependentes sem especificar suas classes concretas
Objetivo Prover uma interface para criar uma família de objetos relacionados ou dependentes sem especificar suas classes concretas Também chamado de Kit Resumo Parece semelhante ao padrão Factory Method,
Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas
Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar
Padrões de Projeto. Factory Method
Tópicos Avançados em Linguagem de Programação Padrões de Projeto Prof. Alexandre Vidal DEINF-UFMA Classificação: Propósito: Criacional Escopo: Objetos Intenção: Construção Intenção: define uma interface
REDES DE COMPUTADORES
REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi [email protected] http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre
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 Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto
Padrões de Projeto de Software
Padrões de Projeto de Software Lista de Exercícios AV1 01 Luiz Leão [email protected] http://www.luizleao.com Questão 1 Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve
Palavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Desenvolvimento Web II
Desenvolvimento Web II Linguagem PHP PHP Orientado a Objeto / Banco de Dados (PDO) https://secure.php.net/manual/pt_br/ Gil Eduardo de Andrade PHP Orientado a Objeto O PHP é uma linguagem de script que
Padrões Fábrica. Simple Factory Factory Method
Universidade Federal de Uberlândia Faculdade de Computação Disciplina: POO2 Prof. Fabiano Azevedo Dorça Padrões Fábrica Simple Factory Padrões Fábrica Padrão Simple Factory: fornece interfaces para criar
Compiladores. Introdução
Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios
PROTÓTIPO PARA SUMARIZAÇÃO AUTOMÁTICA DE TEXTOS ESCRITOS EM LÍNGUA PORTUGUESA ALEXANDRE BUSARELLO JOYCE MARTINS
PROTÓTIPO PARA SUMARIZAÇÃO AUTOMÁTICA DE TEXTOS ESCRITOS EM LÍNGUA PORTUGUESA ALEXANDRE BUSARELLO JOYCE MARTINS Roteiro Introdução Objetivos Fundamentação Teórica Especificação Implementação Operacionalidade
Processos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Projeto 1 Java Remote Method Invocation (RMI)
Projeto 1 Java Remote Method Invocation (RMI) Profs. Emilio Francesquini e Fernando Teubl Ferreira {e.francesquini,fernando.teubl}@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade
PCS 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
RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Visibilidade e Encapsulamento
Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo
INF 1620 P2-23/10/04 Questão 1 Nome:
INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:
Programação Distribuída. Metas de um Sistema Distribuído
Programação Distribuída Metas de um Sistema Distribuído Programação Distribuída Metas de um Sistema Distribuído Um S.D. deve oferecer: 1. fácil acesso a seus recursos; 2. ocultar onde estão esses recursos,
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Ransomware backup e outras medidas preventivas GTS 27 Uberlândia, Maio de 2016
Ransomware backup e outras medidas preventivas GTS 27 Uberlândia, Maio de 2016 Danton Nunes Internexo Ltda. São José dos Campos, SP Do que se trata a encrenca? Um programa clandestino
Grafos: árvores geradoras mínimas. Graça Nunes
Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as
Sistemas Multimídia Aula 3 VRML
Sistemas Multimídia Aula 3 VRML Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Curso de Ciência da Computação Introdução O que é VRML?
PADRÕES DE PROJETO DE SOFTWARE
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação PADRÕES DE PROJETO DE SOFTWARE SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre
Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções
Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach
4 Binding entre Charm++ e Lua
4 Binding entre Charm++ e Lua Após o estudo do primeiro sistema, sobre a integração de Charm++ e Lua através do framework de troca de mensagens, e analisando os resultados e deficiências do binding, planejamos
Compiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,
Construção de Compiladores Aula 18 - Análise Sintática Ascendente
Construção de Compiladores Aula 18 - Análise Sintática Ascendente Bruno Müller Junior Departamento de Informática UFPR 10 de Novembro de 2014 Bruno Müller 5 Implementação Junior Departamento de Informática
INF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Padrões GoF. Leonardo Gresta Paulino Murta [email protected]
Padrões GoF Leonardo Gresta Paulino Murta [email protected] Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma
O PARADIGMA ORIENTADO POR OBJETOS
O PARADIGMA ORIENTADO POR OBJETOS A idéia básica do paradigma orientado a objetos é imaginar que programas simulam o mundo real: um mundo povoado de objetos. Dessa maneira, linguagens baseadas nos conceitos
Compiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,
Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.
Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado
Padrões de Projeto de Software
Padrões de Projeto de Software Lista de Exercícios AV2-01 Luiz Leão [email protected] http://www.luizleao.com Questão 1 Qual o objetivo dos padrões Comportamentais, segundo o catálogo GOF? Questão 1 Resposta
Capítulo 11 Sistemas de Arquivos
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo Sistemas de s Introdução O armazenamento e a recuperação de informações
Programação Orientada a Objetos. Padrões Comportamentais
Programação Orientada a Objetos Padrões Comportamentais Cristiano Lehrer, M.Sc. Classificação dos Padrões de Projeto Propósito o que o padrão faz: Padrões de criação: abstraem o processo de criação de
Padrões GoF Strategy, Observer, Singleton, Abstract Factory e outros...
Padrões GoF Strategy, Observer, Singleton, Abstract Factory e outros... SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 Mais Padrões GoF Strategy Observer
