Projeto de Sistemas de Software Leandra Mara da Silva

Slides:



Advertisements
Apresentações semelhantes
Carlos Roberto Marques Junior
Advertisements

Padrão de Projeto Iterator
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrão de Projeto Interpreter
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Kelly Leal Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
Projeto de Sistemas de Software Hazel, Juliana e Luana
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto
Padrão de Projeto Memento
Carlos R. M. Junior Eduardo Motta
Strategy Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrões de Projeto Mediator.
Padrões de Projeto Prototype.
Metodologias Equipe do Curso de ES para SMA
Design Patterns Interpreter
Abstract Factory – Gustavo Lopes Mourad.
Kleinner Farias e Raphael do Vale
Padrão de Projeto Composite
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Padrão Abstract Factory
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Eduardo Bezerra Padrões GoF (State) Eduardo Bezerra
Padrões GoF - Façade.
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Padrões GoF – Factory Method
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Engenharia de Software
DIAGRAMA DE COMPONENTES
Polimorfismo em C#.
Strategy e Template Method
Fundamentos da Engenharia de Software
Padrões de projeto detalhados Factory Method, Abstract Factory
Padrão de Projeto Visitor
Projeto de Sistemas de Software
Chain of Responsibility
Design Patterns Bridge
LEONARDO SIMAS JUSSI BARROS WESLLEY VIEIRA Flyweight.
Orientação a Objetos Parte I
PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho.
SISTEMAS DISTRIBUIDOS Aula 4
Design Patterns (Padrões de Projeto)
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Trabalho Final de Padrões de Projeto
Padrões de Projeto Abstract Factory.
Padrões de Projeto.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: AbstractMethod Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: State Professores Eduardo Bezerra –
1 Padrões: Bridge (p. 151) Objetivo: separar uma abstração de sua implementação Sinônimos: Handle/Body.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Jobson Ronan Padrões GoF Jobson Ronan
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Projeto de Sistemas de Software Leandra Mara da Silva Design Patterns Projeto de Sistemas de Software Leandra Mara da Silva

Motivação Aprimorar conhecimentos sobre Projeto de Sistemas de Software, realizando um estudo incremental dos Padrões de Projeto apresentados em [GoF]. Palavras-chave: Engenharia de Software, Projeto de Sistemas de Software, Padrões de Projeto. © LES/PUC-Rio

Padrão State

State Classificação Também conhecido como: Propósito Comportamental de Objeto Também conhecido como: Objects for States Propósito Permitir a um objeto alterar o seu comportamento quando o seu estado interno mudar. O objeto parecerá ter mudado de classe. © LES/PUC-Rio

State Motivação Exemplo de Problema: Um objeto responde de maneira distinta dependendo do seu estado © LES/PUC-Rio

State Exemplo de Solução: Conexão possui um objeto que representa o seu estado e que executa as tarefas dependentes de estado (polimorfismo). © LES/PUC-Rio

State Aplicabilidade O comportamento de um objeto depende do seu estado que é alterado em tempo de execução Operações de um objeto possuem condicionais grandes, de várias alternativas (sintoma do caso anterior). Frequentemente, muitas operações irão conter essa mesma estrutura condicional. Estados são usualmente representados por uma ou mais constantes O State coloca cada ramo de comando condicional em uma classe separada, tratando os estados dos objetos como objetos propriamente ditos Estados são usualmente representados por uma ou mais constantes enumeradas Frequentemente, muitas operações irão conter essa mesma estrutura condicional State coloca cada ramo do comando condicional em uma classe separada, tratando os estados como objetos O padrão State coloca cada ramo do comando condicional em uma classe separada. Isto lhe permite tratar o estdao do objeto como um objeto propriamente dito, que pode variar independentemente de outros objetos. © LES/PUC-Rio

State Estrutura Questão: quem define as transições de estado? © LES/PUC-Rio

State Participantes Context State ConcreteState subclasses define a interface de interesse para os clientes mantém uma instância de uma subclasse ConcreteState que define o estado corrente State define uma interface para encapsulamento associado com um determinado estado do Context ConcreteState subclasses cada subclasse implementa um comportamento associado com um estado do Context Define uma interface comum as subclasses © LES/PUC-Rio

State Colaborações Context delega solicitações específicas de estados para o objeto corrente ConcreteState Um contexto pode passar a si mesmo como um argumento para o objeto State que trata a solicitação. Isso permite ao objeto State acessar o contexto, se necessário Context é a interface primária para os clientes. Os clientes não tem que lidar com objetos State diretamente Tanto Context quanto as subclasses de ConcreteState podem decidir qual estado sucede outro O padrão State também prevê que cada estado pode ser responsável por determinar quem é o próximo estado, de forma que o controle do fluxo da aplicação se torna mais fácil de entender - se quiseres saber quem sucede o EstadoLogin, vá para a classe EstadoLogin e leia o método "proximo()". Bem mais fácil que ler um switch monstruoso de 800 linhas. © LES/PUC-Rio

State Exemplo de Código Situação: usuário de biblioteca quer pegar empréstimo de livros. Dependendo do seu estado, o usuário pode ou não pegar livros Classes Envolvidas: UsuarioContexto, UsuarioState, UsuarioSemEmprestimo, UsuarioComEmprestimo, UsuarioEmDebido Posso citar outros exs: 1. caso do projeto em elaboração, em andamento ou concluído. Método associar publicação. 2. caso do click no paint que se o balde estver selecionado o método onclick se comporta para pintar, se o lápis estiver se comporta para desenahr, etc © LES/PUC-Rio

State – Exemplo de Código Posso citar outros exs: 1. caso do projeto em elaboração, em andamento ou concluído. Método associar publicação. 2. caso do click no paint que se o balde estver selecionado o método onclick se comporta para pintar, se o lápis estiver se comporta para desenahr, etc © LES/PUC-Rio

State – Exemplo de Código Posso citar outros exs: 1. caso do projeto em elaboração, em andamento ou concluído. Método associar publicação. 2. caso do click no paint que se o balde estver selecionado o método onclick se comporta para pintar, se o lápis estiver se comporta para desenahr, etc © LES/PUC-Rio

State – Exemplo de Código © LES/PUC-Rio

State Outros casos exemplos: Estados de seleção no Paint (lápis selecionado, balde selecionado) Estados de um projeto em um sistema de gerenciamento de projetos Objetos state são frequentemente Singletons © LES/PUC-Rio

State Conseqüências Separa comportamento dependente de estado. pró : Novos estados/comportamentos podem ser facilmente adicionados e ganho em legibilidade. A intenção sobre as transições de estado fica mais clara Contra: aumento no número de classes; menos compacto Transição de estados é explícita Objetos States podem ser compartilhados Quando não possuem variáves de instância podem ser compartilhados essencialmente como flyweights, sem estado intrínseco, somente comportamento Objetos state são frequentemente Singletons © LES/PUC-Rio

Fim!!