• Nenhum resultado encontrado

Padrões de Design Orientado a Objetos Design Patterns. Jorge H. C. Fernandes DI-UFPE, Junho de 1999

N/A
N/A
Protected

Academic year: 2021

Share "Padrões de Design Orientado a Objetos Design Patterns. Jorge H. C. Fernandes DI-UFPE, Junho de 1999"

Copied!
25
0
0

Texto

(1)

Padrões de Design

Orientado a Objetos

Design Patterns

(2)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Padrões de Design

Bibliografia



Design Patterns: Elements of Reusable

Object-Oriented Software. Gamma, Helm, Johnson e

Vlissides, a “Gang dos Quatro”. 1994.



El Modo Intemporal de Construir. Christopher

Alexander, 1977.



A Pattern Language, Christopher Alexander,

1977.



Lista de Livros

(3)

Padrões de Design

Sites na Web

 Padrões de Design OO http://hillside.net/patterns/patterns.html http://gee.cs.oswego.edu/dl/cpj/ifc.html http://st-www.cs.uiuc.edu/cgi-bin/wikic/wikic?JavaAWT http://mordor.cs.hut.fi/tik-76.278/group6/awtpat.html



Transactions and Accounts

http://c2.com/cgi/wiki?TransactionsAndAccounts

http://st-www.cs.uiuc.edu/users/johnson/Accounts.html



Padrões para Processo de Desenvolvimento de Estrutura

de Organizações

http://www.bell-labs.com/~cope/Patterns/Process/



Padrões de Reengenharia

(4)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Christopher Alexander

(Arquiteto e Urbanista)

“Cada padrão descreve um problema que

ocorre freqüentemente em seu ambiente,

e então descreve o cerne da solução para

aquele problema, de um modo tal que

(5)

O Origem dos Padrões

Padrões compondo uma

linguagem capaz de suportar

a construção coletiva,

dinâmica, integral, etc, de

artefatos humanos (casas,

cidades, programas de

(6)
(7)

Christopher Alexander, O Modo

Intemporal de Construir, 1977.



Edifícios ou cidades estão vivos à medida em que são

governados pelo modo intemporal de construção.



É um processo que extrai ordem de nós mesmos.

Ocorrerá espontaneamente, somente se nos

permitirmos.

Lugares adquirem suas características a partir dos padrões de acontecimentos que lá ocorrem.

Acontecimentos estão sempre relacionados com padrões geométricos (de construção)

Padrões de construção podem estar “vivos” ou “mortos”

Se “vivos” solucionam conflitos,e se auto-alimentam

(8)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Padrões “Vivos” para Construção

de Casas, Bairros e Cidades

(9)

Uma Linguagem de Padrões

para um Jardim

Jardim Semi-Oculto

Jardim Espontâneo Pátios com Vida

Transição na Entrada

Terraço Privado

Olhando para a Rua

Balcão de 1.80m

Conexão com a Terra Banco de Jardim

Pomar

Lugar Árvores

Ladeira em Terraços

Canto do Edifício

Local Público Exterior Estufa

(10)
(11)

Complien’s Process and

Organization Structure Patterns

 Size the Schedule

 Organization Follows Market

 Developer Controls Process

 Architect Also Implements

 Review the Architecture

 Group Validation

 Scenarios Define Problem

 Named Stable Bases

 De-Couple Stages

 Hub-Spoke-and-Rim

 Prototype

 Take No Small Slips

 Interrupts Unjam Blocking

 Don't Interrupt an Interrupt

 Self-selecting team

 Solo Virtuoso

 Form follows Function

 Domain Expertise in Roles

 Phasing it In

 Apprentice

 Organization Follows Location

 Organization Follows Market

 Patron

 Architect Controls Product

 Planning and Architecture

 Conway's Law

(12)
(13)

Uma Linguagem de Padrões para Programas OO

State

Memento Adapter Proxy

Bridge Command Chain of Responsibility Abstract Factory Prototype Template Method Factory Method Observer Mediator Strategy Decorator Flyweight Composite Interpreter Visitor Iterator Builder Adicionando Operações Adicionando Operações Enumerando Filhos Salvando Estado da Operação Criando Composições Adicionando Responsabilidades a Objetos Modificando Pele versus Entranhas Compartilhando Composições Definindo Gramática Definindo Travessias Definindo a Cadeia Composto Usando Evitando Histerese Compartilhando Estratégias Compartilhando Estados Compartilhando Terminais Configurar Fábrica Dinamicamente Única

Instância ImplementadaUsando

(14)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Padrões de Design



Soluções Sucintas e de Fácil Aplicação

Capturam, de forma sucinta e facilmente aplicável, soluções de projeto (de programas de computador, casas, cidades, bairros, etc) que foram desenvolvidas e evoluíram com o passar do

tempo



Soluções Exaustivamente Refinadas

Resultados de um longo processo de projeto, re-projeto, teste e reflexão sobre o que torna um sistema mais flexível, reusável, modular e compreensível.



Soluções Compartilhadas

Construídas em grupo

(15)

Elementos Essenciais de um

Padrão de Design



Nome

Resume em uma ou duas palavras: o problema, as soluções e conseqüências do uso do padrão.



O Problema

Descreve quando aplicar o padrão. Explica o problema e seu contexto. Sintomas e condições.



A Solução

Elementos que constituem o design, seus relacionamentos, responsabilidades e colaboradores.



As Conseqüências

Resultados e compromissos decorrentes da aplicação do padrão.

(16)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Padrões de Design Orientado a

Objetos - Livro da “Gang-dos-Quatro”

(17)

Classes de Padrões de Design OO



Criacionais



Tornam um sistema independente de como seus

objetos são criados, compostos e representados



Estruturais



Tratam de compor classes e objetos para formar

estruturas grandes e complexas



Comportamentais

(18)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Sistema

Objeto

SGBD

Padrões Criacionais

 Tornam um sistema independente de como seus objetos são criados, compostos e representados

(19)

Padrões Estruturais

(20)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

Padrões Comportamentais(1/2)

(21)

Observer(s)

30%, 20%, 50%

Padrões Comportamentais(2/2)

(22)

State

Memento Adapter Proxy

Bridge Command Chain of Responsibility Singleton Abstract Factory Prototype Template Method Facade Factory Method Observer Mediator Strategy Decorator Flyweight Composite Interpreter Visitor Iterator Builder

Uma Linguagem de Padrões para Programas OO

(23)
(24)

Padrões de Design. Java Deployment Couser. Recife, DI-UFPE, Maio de 1999. Jorge H. C. Fernandes. jhcf@di.ufpe.br

(25)

Diagrama de Interação de Objetos

umObjeto operação a ti v a sobre o ob jet o TEMPO outroObjeto.método() this.método() outroObjeto

Referências

Documentos relacionados

Verificou-se a existência de alguns processos operacionais da Empresa Aérea Latam Brasil, em especial os que se referem à redução dos impactos ambientais em

A f´ abrica de ingredientes agora ´e usada para produzir pizzas O tipo de ingrediente depende do tipo de f´ abrica usada Se usarmos uma f´ abrica de ingredientes de S˜ ao Luis,

A Direção-Geral do Campus Ariquemes, por meio da Coordenação de Assistência ao Educando, e considerando a Resolução nº 33/CONSUP/IFRO, de 23 de setembro de

Esta dissertação aborda o uso de atividades de robótica como recurso tecnológico para a exploração de conceitos relacionados à transferência de calor no ensino

Creational Abstract Factory Builder Factory Method Prototype Singleton Structural Adapter Bridge Composite Decorator Facade Flyweight • Proxy Behavioral Chain

Outro animal silvestre importante na região do Pantanal é o quati no qual o curso da infecção possui dois estágios: o primeiro relacionado a altos níveis de

Quanto aos funcionários internos, obedecendo-se ao artigo 7° Inciso XIII da Constituição Federal de 1988, a jornada de trabalho será de, no máximo 44 (quarenta e quatro) horas

Com base em nossa revisão, não temos conhecimento de nenhum fato que nos leve a acreditar que as informações contábeis intermediárias incluídas nas informações trimestrais