Padrões GoF Iterator, State, Singleton, Observer e Composite
|
|
|
- Aparecida Ferreira Tomé
- 8 Há anos
- Visualizações:
Transcrição
1 Padrões GoF Iterator, State, Singleton, Observer e Composite Análise e Projeto Orientados a Objetos Profa Dra Rosana T. V. Braga 1
2 Alguns Padrões GoF Singleton Iterator State Observer Composite 2
3 Introdução aos Padrões Origem dos padrões: Christopher Alexander (1977, 1979) Cada padrão descreve um problema que ocorre repetidas vezes em nosso ambiente, e então descreve o núcleo da solução para esse problema, de forma que você possa utilizar essa solução milhões de vezes sem usá-la do mesmo modo duas vezes Proposta de padrões extraídos a partir de estruturas de edifícios e cidades de diversas culturas, com o intuito de ajudar as pessoas a construir suas comunidades com a melhor qualidade de vida possível 3
4 Introdução aos Padrões Origem dos Padroes em software: Beck e Cunningham: 1987 pequena linguagem de padrões para guiar programadores inexperientes em Smalltalk Peter Coad: 1992 padrões de análise descobertos na modelagem de sistemas de informação James Coplien 1992 catálogo de vários estilos ( idioms ), com o intuito de padronizar a escrita de código em C+ Gamma et al 1995 padrões de projeto derivados a partir de experiência prática com desenvolvimento de software orientado a objetos 4
5 Padrões de Software Por que Padrões? Desenvolvedores acumulam soluções para os problemas que resolvem com freqüência Essas soluções são difíceis de serem elaboradas e podem aumentar a produtividade, qualidade e uniformidade do software Como documentar essas soluções de forma que outros desenvolvedores, menos experientes, possam utilizá-las? 5
6 Padrões de Software Padrões de Software: Descrevem soluções para problemas que ocorrem com freqüência no desenvolvimento de software (Gamma 95) 6
7 Padrões de Software Vantagens de Padrões? Aumento de produtividade Uniformidade na estrutura do software Aplicação imediata por outros desenvolvedores Redução da complexidade: blocos construtivos 7
8 Exemplo: Padrões de Projeto - GoF Catálogo de Padrões de Projeto [Gamma95] Dois critérios de classificação Propósito - reflete o que o padrão faz De Criação: trata da criação de objetos Estrutural: cuida da composição de classes e objetos Comportamental: caracteriza o modo como as classes e objetos interagem e distribuem responsabilidades Escopo Classe: trata do relacionamento entre classes e subclasses (herança - relacionamento estático) Objetos: lida com a manipulação de objetos (podem ser modificados em tempo de execução) GoF: Gang of Four apelido dado aos quatro autores do livro 8
9 Escopo Padrões de Projeto - GoF Propósito De Criação Estrutural Comportamental Classe Método-fábrica Adaptador Interpretador Método Gabarito Objeto Fábrica Abstrata Construtor Protótipo Objeto Unitário Adaptador Ponte Composto Decorador Fachada Peso-pena Procurador Cadeia de Responsabilidade Comando Iterador Mediador Memento Observador Estado Estratégia Visitador
10 Padrão de Projeto: Objeto Unitário (Singleton) utilizado quando é necessário garantir que uma classe possui apenas uma instância, que fica disponível às aplicações-cliente de alguma forma. Por exemplo, uma base de dados é compartilhada por vários usuários, mas apenas um objeto deve existir para informar o estado da base de dados em um dado momento. 10
11 Padrão de Projeto: Objeto Unitário Problema Como garantir que uma classe possui apenas uma instância e que ela é facilmente acessível? Forças Uma variável global poderia ser uma forma de tornar um objeto acessível, embora isso não garanta que apenas uma instância seja criada. 11
12 Padrão de Projeto: Objeto Unitário Solução Fazer a própria classe responsável de controlar a criação de uma única instância e de fornecer um meio para acessar essa instância. A classe Objeto Unitário define um método instância para acesso à instância única, que verifica se já existe a instância, criando-a se for necessário. Na verdade esse é um método da classe (static em C++ e Java), ao invés de método do objeto. A única forma da aplicação-cliente acessar a instância única é por meio desse método. Construtor é privado e instância das classes só poderão ser obtidas por meio da operação pública e estática getinstance(). 12
13 Padrão de Projeto: Objeto Unitário Objeto Unitário static instânciaúnica dadosdoobjetounitário static instância() criarinstancia() operaçãodeobjetounitário() obterdadosdoobjetounitário() if instancia == null criarinstancia; return instancia 13
14 Exemplo de aplicação de padrões de projeto Problema: Ao iniciar uma aplicação, será necessário estabelecer uma conexão com a base de dados, para ter um canal de comunicação aberto durante a execução da aplicação. Em geral, isso é implementado por meio de uma classe Conexão (várias interfaces de BDRs existentes fornecem uma classe Connection especialmente para este fim). Esta conexão deve posteriormente ser fechada, no momento do término da aplicação. 14
15 Exemplo de aplicação do padrão Objeto Unitário A conexão com o BDR deve preferencialmente ser única, pois se cada vez que um objeto for criado uma nova conexão for criada, inúmeros objetos existirão na memória, desnecessariamente. Assim, pode-se aplicar o padrão Objeto Unitário para garantir que, para cada aplicação sendo executada, uma única conexão válida com o BDR existe. 15
16 Exemplo de aplicação do padrão Objeto Unitário <<objeto unitário>> ConexaoBDR conexao conexao() criarconexao( ) terminarconexao( if conexao=null criarconexao endif return conexao 16
17 Exemplo Aplicado na camada de persistência do Sistema Passe Livre para se obter um único ponto de acesso a um pool de conexões com a base de dados MySQL. 17
18 18
19 Padrão Iterator Nome: Iterator (Gamma 94) Objetivo: Existe a necessidade de percorrer agregados quaisquer, em diversas ordens, sem conhecer sua representação subjacente Motivação: além de acessar os elementos sem conhecer a estrutura interna do agregado, pode ser desejável percorrer o agregado de diferentes formas, sem poluir a interface com inúmeros métodos para isso e mantendo controle do percurso. 19
20 Padrão Iterator Solução: Criar uma classe abstrata Iterator, que terá a interface de comunicação com o cliente. Para cada agregado concreto, criar uma subclasse de Iterator, contendo a implementação dos métodos necessários 20
21 Padrão Iterator Aplicabilidade Use o padrão Iterator Para acessar o conteúdo de um objeto agregado sem expor sua representação interna. Para apoiar diferentes trajetos de objetos agregados. Para conseguir uma interface uniforme para percorrer diferentes estruturas de agregados (isto é, para apoiar a iteração polimórfica). 21
22 Funções do Iterador Responsabilidades do Iterador First: Para acessar o primeiro elemento do agregado Next: Para ir para o próximo elemento do agregado IsDone: booleano que representa o fim do agregado CurrentItem: retorna o item do agregado referenciado no momento 22
23 Padrão de Projeto: (Gamma 94)
24 Exemplo 1 (Gamma 94)
25 Exemplo 2 Lista createiterator() Client Iterator first() next() isdone() currentitem() Fila createiterator() IteradorFila return new IteradorFila(this)
26 Exemplo 3 Lista createiterator() Iterator first() next() isdone() currentitem() Client ForwardIterador ReverseIterador
27 Iterador na API Java O pacote java.util contém uma interface Iterator com os métodos:next(), hasnext() e remove(). O método next() é uma combinação de next() e currentitem() A subinterface ListIterator especifica esses métodos para operarem nos objetos List e adiciona os métodos apropriados aos objetos List. A interface List tem um método listiterator(), que retorna um objeto ListIterator que itera sobre ele. Isso permite ao programador mover-se e iterar sobre objetos List. 27
28 Iterador na API Java 28
29 Uso do Iterator da API Java public void devolvercopia(int codcopia) { Iterator i = linhas.iterator(); Date datadehoje = new Date(); while (i.hasnext()) { LinhaDeEmprestimo linha = (LinhaDeEmprestimo) i.next(); cc=linha.codigocopia(); if (cc==codcopia) linha.atualizadatadev(datadehoje); } } }
30 Padrão State Intenção Permite que um objeto altere seu comportamento de acordo com mudança interna de estado. Dará a impressão que o objeto mudou de classe. Propósito: fazer com que um objeto comporte-se de uma forma determinada por seu estado. Agregar um objeto Estado e delegar comportamento a ele. 30
31 Padrão State Aplicabilidade: Use o padrão State em quaisquer das seguintes situações: O comportamento de um objeto depende de seu estado e ele precisa mudar de comportamento em tempo de execução, dependendo de tal estado. Operações possuem comandos grandes, de múltiplas partes condicionais, que dependem do estado do objeto. Em geral esse estado é representado por uma ou mais constantes enumeradas. Frequentemente será necessário repetir essa estrutura condicional em diversas operações. 31
32 Padrão State Aplicabilidade: Use o padrão State em quaisquer das seguintes situações: O padrão State faz com que cada ramo da condicional fique em uma classe separada, permitindo que o estado do objeto seja tratado como um objeto em si e que esse estado possa variar independentemente de outros objetos. 32
33 Padrão State 33
34 Colaborações O Contexto delega solicitações específicas de estado ao objeto ConcreteState. O Contexto pode passar a si próprio como argumento ao objeto State que está tratando a solicitação. O Contexto é a interface principal para os clientes, que podem configurá-lo com objetos State, de forma que não precisem lidar com os objetos State diretamente. Tanto as subclasses de Contexto quanto de ConcreteState podem decidir qual estado sucede outro e em que circunstâncias (transições). 34
35 Questões de implementação Quem define as transições de estado: contexto ou estado? Se há um critério fixo para mudança de estado: contexto Mudanças constantes: estado Necessária interface para que seja possível que objetos estados modifiquem explicitamente o estado atual do contexto Tabela para mapear transições Criar e destruir objetos Estado Criar todos os objetos a priori ou criar/destruir sob demanda? 35
36 Exemplo: jogo de RPG 36
37 Exemplo 37
38 Padrões de Projeto Padrões Relacionados (Related Patterns) Chain of Responsibility Decorator Flyweight Iterator Visitor 38
39 Padrão Observador Intenção: Definir uma dependência de um-para-muitos entre objetos, de forma que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. 39
40 Padrão Observer Aplicabilidade: Use o padrão Observer em quaisquer das seguintes situações: Quando uma abstração tem dois aspectos, um dependente do outro. Encapsular esses aspectos em objetos separados permite variar e reutiliza-los independentemente. Quando uma mudança em um objeto requer mudar outros, e não se sabe quantos objetos devem ser mudados. Quando um objeto deve ser capaz de notificar outros objetos sem assumir quem são esses objetos. Em outras palavras, não é desejável que esses objetos estejam fortemente acoplados. 40
41 Padrão Observer alterações, requisições Notificação 41
42 Padrão Observer 42
43 Padrão Observer 43
44 Como funciona o Observer? 44
45 Como funciona o Observer? (Passo 1) A aplicação cliente referencia um objeto de interface conhecido, solicitando que os observadores sejam notificados. Por exemplo, a aplicação cliente poderia ser um processo programado para alertar sobre uma alteração de dados. No modelo, isso é mostrado como um objeto AplicacaoCliente, que informa ao objeto Origem para executar sua função notificar(). (Passo 2) O método notificar() chama a função atualizar() em cada objeto Observador que ele agrega. (Passo 3) A implementação de atualizar() depende do ObservadorConcreto particular a que pertence. Normalmente, atualizar() compara o estado do objeto ObservadorConcreto (valores de variáveis) com aquele da origem de dados central, para então decidir se deve ou não alterar seus valores de variáveis da mesma forma. 45
46 Observer na API Java 46
47 Observer na API Java A API Java utiliza praticamente os mesmos termos de Gamma et al. [Ga]. Observe que update(..) é um método retroativo (callback), porque fornece aos objetos Observer uma referência a sua origem, desta forma permitindo que eles comparem seus dados etc. com o objeto Observable na execução de update(). Como a atualização (update) é implementada de modo retroativo, não há necessidade das classes concretas Observer manterem referências ao objeto Observable. 47
48 Padrão Composite Composite (Objeto Estrutural) Intenção (Intent) compõe objetos em estruturas de árvore para representar hierarquias part-whole. Composite deixa o cliente tratar objetos individuais e composição de objetos uniformemente. 48
49 Padrões de Projeto Motivação (Motivation) Editores gráficos permitem aos usuários construir diagramas complexos, agrupando componentes simples Implementação simples: definir uma classe para primitivas gráficas tais como Texto, Linhas e outras classes que agem como depósitos (containers) para essas primitivas Problema: Código que usa essas classes deve tratar primitivas e objetos do depósito diferentemente, tornando a aplicação mais complexa 49
50 Padrões de Projeto Aplicabilidade (Applicability) representar hierarquias de objetos part-whole permitir aos usuários ignorar a diferença entre composições de objetos e objetos individuais. Todos os objetos na estrutura são tratados uniformemente 50
51 Padrões de Projeto O Composite cria uma classe abstrata que representa primitivas e seus depósitos. 51
52 Padrões de Projeto Estrutura (Structure) 52
53 Padrões de Projeto Exemplo de composição recursiva de objetos 53
54 Padrões de Projeto Participantes (Participants) 54
55 Padrões de Projeto Participantes (Participants) Component (Grafic) declara a interface para os objetos na composição implementa o comportamento padrão para a interface comum de todas as classes, quando apropriado declara uma interface para acessar e gerenciar os componentes filho define uma interface para acessar o pai de um componente na estrutura recursiva, implementado-o se for apropriado 55
56 Padrões de Projeto Participantes (Participants) 56
57 Padrões de Projeto Participantes (Participants) Leaf (Rectangle, Line, Text, etc.) representa objetos folha na composição. Uma folha não tem filhos define o comportamento para objetos primitivos na composição 57
58 Padrões de Projeto Participantes (Participants) 58
59 Padrões de Projeto Participantes (Participants) Composite (Picture) define o comportamento para componentes que têm filhos armazena componentes filho implementa operações relacionadas aos filhos na interface Component 59
60 Padrões de Projeto Participantes (Participants) 60
61 Padrões de Projeto Participantes (Participants) Client manipula objetos na composição pelo através da interface Component 61
62 Padrões de Projeto Colaboradores (Collaborations) Clients usam a interface Component para interagir com objetos na estrutura composta. Se o receptor é uma folha então o pedido é manipulado diretamente Se o receptor é um Composite então os pedidos são enviados para seus componentes filhos 62
63 Padrões de Projeto Conseqüências (Consequences) define hierarquias de classes que consistem de objetos primitivos e compostos simplifica o cliente. Clientes podem tratar estruturas compostas e objetos individuais de maneira uniforme facilita a adição de novos componentes 63
64 Padrões de Projeto class Equipment { public: virtual ~Equipment(); Exemplo de Código (Sample Code) const char* Name() { return _name; } virtual Watt Power(); virtual Currency NetPrice(); virtual Currency DiscountPrice(); virtual void Add(Equipment*); virtual void Remove(Equipment*); virtual Iterator* CreateIterator(); protected: Equipment(const char*); private: const char* _name; }; class CompositeEquipment : public Equipment { public: virtual ~CompositeEquipment(); virtual Watt Power(); virtual Currency NetPrice(); virtual Currency DiscountPrice(); virtual void Add(Equipment*); virtual void Remove(Equipment*); virtual Iterator* CreateIterator(); protected: CompositeEquipment(const char*); private: List _equipment; }; 64
65 Padrões de Projeto class FloppyDisk : public Equipment { public: FloppyDisk(const char*); virtual ~FloppyDisk(); virtual Watt Power(); virtual Currency NetPrice(); virtual Currency DiscountPrice(); }; class Chassis : public CompositeEquipment { public: Chassis(const char*); virtual ~Chassis(); virtual Watt Power(); virtual Currency NetPrice(); virtual Currency DiscountPrice(); }; Currency CompositeEquipment::NetPrice () { Iterator* i = CreateIterator(); Currency total = 0; for (i->first();!i->isdone(); i->next()) { total += i->currentitem()->netprice(); } delete i; return total; } Nós folha Método do composto 65
66 Padrões de Projeto Cabinet* cabinet = new Cabinet("PC Cabinet"); Chassis* chassis = new Chassis("PC Chassis"); cabinet->add(chassis); Bus* bus = new Bus("MCA Bus"); bus->add(new Card("16Mbs Token Ring")); chassis->add(bus); chassis->add(new FloppyDisk("3.5in Floppy")); cout << "The net price is " << chassis->netprice() << endl; Programa principal (cliente) 66
67 Padrões de Projeto Usos Conhecidos (Known Uses) Presente em quase todos os sistemas OO A classe original View do MVC RTL Smalltalk compiler framework Etc. 67
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
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
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
Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico
Reuso de Software Aula 03 Tópicos da Aula POO e Padrões de Projetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 12 Março 2012 Programação orientada a objetos Reuso de
Padrões contexto problema solução
Padrões Padrões são soluções para problemas específicos que ocorrem de forma recorrente em um determinado contexto que foram identificados a partir da experiência coletiva de desenvolvedores de software.
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
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
SCE 186- Engenharia de Software
Reuso de Software SCE 186- Engenharia de Software Profa Rosana T. Vaccare Braga (parte do material elaborado com base no tutorial sobre reuso da Profa. Claudia Werner) 1 Sumário Introdução Benefícios X
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
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
Paulo C. Masiero Eng. Software, Sommerville, Cap. 16, Ed. 9ª. e outros materiais
Paulo C. Masiero Eng. Software, Sommerville, Cap. 16, Ed. 9ª. e outros materiais 1. Introdução 2. O Panorama de reúso 3. Geradores de Código 4. Framework de Aplicações 5. Linhas de Produtos de Software
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
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 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
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,
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
Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos
Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos
Requisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
Decorator e Composite. Nazareno Andrade (baseado no material de Hyggo Almeida)
Decorator e Composite Nazareno Andrade (baseado no material de Hyggo Almeida) Decorator Vocês sabem como ler um arquivo texto em Java??? Pode-se usar a classe java.io.fileinputstream Vamos fazer um teste
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 09 Padrões GoF (Adapter e Composite) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton
Programação Orientada a Objetos. Padrões de Projeto
Programação Orientada a Objetos Padrões de Projeto 1 Contexto Desenvolver sistemas reutilizáveis é difícil porque deve-se procurar por: Uma boa decomposição do problema e a abstração correta. Flexibilidade,
C com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná
Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Reuso Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código,
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
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
Análise e Projeto. Padrões de Análise, Arquitetura e Projeto
Análise e Projeto Padrões de Análise, Arquitetura e Projeto 33 Padrões de Arquitetura Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e seu contexto. Solução: elementos que
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos
UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos [email protected] Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.
Programação com Objectos
Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é
PADRÕES DE PROJETO: DESIGN PATTERNS
PADRÕES DE PROJETO: DESIGN PATTERNS Jaime William Dias 1, Danilo Venturini 1, William Macxuel Muniz 1, Rodrigo Niehues Chagas 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil [email protected],
Orientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
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
b) Adapter, Bridge e Composite. c) Builder, Prototype e Singleton. d) Façade, Command e Decorator. e) Factory Method, Interpreter e Template Method.
1) Considere os diagramas de classes de análise fornecidos nos itens (a) e (b) abaixo, ambos de acordo com a notação da UML. Esses diagramas desejam representar o fato de que uma conta bancária pode estar
1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010
1 1 Introdução 1.1 Teoria dos Sistemas 1.2 Constituição dos sistemas 1.3 Natureza dos sistemas 1.4 Parâmetros do sistema 1.5 Descrição de sistemas 1.6 Desafios enfrentados no desenvolvimento 1.7 Perfil
Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça. Introdução. Padrões de projeto
Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça Introdução Padrões de projeto Algumas definições... Um padrão de projeto (design pattern) é uma solução geral reutilizável
Desenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de
Análise e Projeto de Software Parte II. Marcos Dósea
Análise e Projeto de Software Parte II Marcos Dósea [email protected] Agenda Aula III Análise de Software Orientado à Objetos Motivação Marcos Dósea [email protected] O que é análise e projeto?
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
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 Projeto de Software
Padrões de Projeto de Software Luiz Leão [email protected] http://www.luizleao.com Introdução O que é? Como descrever? Principais Padrões de Projetos Unidade 2 Padrões GoF PADRÕES CRIAÇÃO Abstract Factory
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
Linguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior [email protected] Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
ESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO
Mostra Nacional de Iniciação Científica e Tecnológica Interdisciplinar III MICTI Fórum Nacional de Iniciação Científica no Ensino Médio e Técnico - I FONAIC-EMT Camboriú, SC, 22, 23 e 24 de abril de 2009
Classes o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU
Aula 3 POO 1 Classe e Objeto Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Módulo I Princípios e Padrões de Projeto de SW em Java
Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra [email protected] Ismael H F Santos [email protected] April 05 Prof. Ismael H. F. Santos - [email protected]
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
Programação Orientada a Objetos
Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no
Introdução ao Java. Prof. Herbert Rausch Fernandes
Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos
Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:
Diagramas de Interação Os modelos de análise não respondem a algumas perguntas: Como as operações do sistema são executadas internamente? A que classes estas operações internas pertencem? Quais objetos
Engenharia de Software. Projeto de Arquitetura
Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra
