design patterns

21
EVANDRO VENANCIO design patterns Strategy Observer F Factory e Decorator B Composite m Visitor @ Interpre ter j Flyweight @ [email protected] m Contato Bridge

Upload: evandro-venancio

Post on 11-Jun-2015

1.335 views

Category:

Technology


4 download

DESCRIPTION

Palestra de Design Patterns sob o ponto de vista arquitetônico, apresentando diferentes tipos de paradigmas e princípios, como o GoF, ISO, GRASP, SOLID, MVC e Aspect.

TRANSCRIPT

Page 1: Design Patterns

EVANDRO VENANCIO

design patterns

Strategy

Observer

FFactory

eDecorator

BComposite

mVisitor

@Interpreter

j Flyweight

@[email protected]

Contato

Bridge

Page 2: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

sobre padrõesÉ sobre soluçãoO padrão propõe uma solução para problemas corriqueiros

É sobre reusoO padrão pode ser aplicado em diversas circunstâncias

É sobre comunicaçãoO padrão proporciona um entendimento comum entre as pessoasÉ sobre organizaçãoO padrão dá sentido as diferenças do universo

É sobre entendimentoAprender o padrão é aprender como lidar com os problemas

Page 3: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

exemplo de padrõesPortuguês, espanhol, inglês, gregoO entendimento das línguas resolve o problema de Babel

Real, dólar, libra, euro, yenA moeda utilizada em um país é uma espécie de padrão

Código civil, criminal, penalAs diversas leis descrevem os nossos direitos e deveres

Dias, semanas, mesesO ano é organizado e classificado de inúmeras formas

Rock, pop, metal, blues, erudito, new ageOs estilos musicais definem um padrão muito bem estabelecido

Page 4: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

padronizando o mundoISOInternational Organization for Standarlization

Fundada em 1947Em Genebra, na Suiça

Aprovação e documentaçãoDe normas técnicas, classificação e normas de procedimentoNo Brasil: ABNTAssociação Brasileira de Normas Técnicas

No EUA: ANSIAmerican National Standarts Institute

Page 5: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

normas ISO em softwareISO/IEEE 1471 e ISO/IEC 42010Descreve o arquiteto e a arquitetura de software

ISO/IEC 19501Descreve a UML como um padrão gráfico para modelagem

ISO/IEC 9126Requisitos e qualidade de software

ISO/IEC 12207Processo para ciclo de vida do desenvolvimento (ALM)

E muito mais!C, C++, VRLM, segurança em TI, gerenciamento de serviços

Page 6: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

paradigma OO: a revoluçãoMotivaçãoAbstração de conceitos do mundo real

AplicaçãoInteligência Artificial, Linguística e Softwares

Implementação da POOConjunto de classes que definem objetos de um sistema

Conceitos chavesClasse, herança, interface, pacote, polimorfismo, mensagemLinguagens popularesC++, C#, Java, Python, Ruby, SmallTalk, PHP 4

Page 7: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

padrões de projetosÉ sobre arquiteturaUtilizar, especificar e definir padrões como solução

Christopher AlexanderAparece pela primeira vez em 1970 em seus livros

EncapsulamentoUm padrão encapsula um problema/solução bem definida

GeneralidadePermitir a construção de outras realizações a partir deste padrãoAbstraçãoRepresentam abstrações da experiência empírica

Page 8: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

formato de um padrãoNomeUma descrição da solução, mais do que do problema

ExemploFiguras, diagramas ou descrições que ilustrem um protótipoContextoA descrição das situações sob as quais o padrão se aplica

ProblemaDescrição das forças e restrições e como elas interagem.

SoluçãoDescreve como construir artefatos de acordo com o padrão

Page 9: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

GoF: Gang of FourQuem são?Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Problemas semelhantesSoluções ainda mais

Make It SimpleOs padrões devem ser simples e facilmente implementadosNão reescreva código!Evita que o código seja duplicado e facilita a manutenção

É sobre InterfacesSão os contratos que definem a flexibilidade dos padrões

Page 10: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

GoF: tipos de padrõesCriaçãoSistemas independentes de como seus objetos são criados

EstruturaisForma como as classes e objetos formam estrutura maiores.ComportamentaisAlgoritmo e atribuição de responsabilidades entre os objetos.Ao todos são 23 padrõesDevidamente especificados e aceitos na comunidade.

Page 11: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

padrões de criaçãoAbstract FactoryErich Gamma, Richard Helm, Ralph Johnson, John Vlissides

BuilderSoluções ainda mais

Factory MethodOs padrões devem ser simples e facilmente implementadosPrototypeEvita que o código seja duplicado e facilita a manutenção

SingletonSão os contratos que definem a flexibilidade dos padrões

Page 12: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

padrões estruturaisAdapterAbstração de conceitos do mundo real

BridgeInteligência Artificial, Linguística e Softwares

CompositeConjunto de classes que definem objetos de um sistema

DecoratorClasse, herança, interface, pacote, polimorfismo, mensagemFaçadeC++, C#, Java, Python, Ruby, SmallTalk, PHP 4

Page 13: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

padrões comportamentaisCommandUtilizar, especificar e definir padrões como solução

InterpreterAparece pela primeira vez em 1970 em seus livros

MediatorUm padrão encapsula um problema/solução bem definida

ObserverPermitir a construção de outras realizações a partir deste padrãoStrategyRepresentam abstrações da experiência empírica

Page 14: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

GRASPGuia para atribuição de responsabilidadeGeneral Responsibility Assignment Software PatternsCreatorFiguras, diagramas ou descrições que ilustrem um protótipoExpertA descrição das situações sob as quais o padrão se aplica

ControllerDescrição das forças e restrições e como elas interagem.

Low CouplingDescreve como construir artefatos de acordo com o padrão

Page 15: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

High CohesionO entendimento das línguas resolve o problema de Babel

PolymorphismA moeda utilizada em um país é uma espécie de padrão

Pure FabricationAs diversas leis descrevem os nossos direitos e deveres

IndirectionO ano é organizado e classificado de inúmeras formas

Protected VariationsOs estilos musicais definem um padrão muito bem estabelecido

Page 16: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

SOLIDSingle responsibility principleInternational Organization for Standarlization

Open/closed principleEm Genebra, na Suiça

Liskov substitution principleDe normas técnicas, classificação e normas de procedimentoInterface segregation principleAssociação Brasileira de Normas Técnicas

Dependency inversion principleAmerican National Standarts Institute

Page 17: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

técnicas e princípiosDRYDon’t repeat yourself

MVCSoluções ainda mais

MVVMOs padrões devem ser simples e facilmente implementadosKISS PrincipleKeep it simples, Stupid!

BDD/TDDSão os contratos que definem a flexibilidade dos padrões

Page 18: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

POO Separation Of ConcernsAspect-oriented programming

rão propõe uma solução para problemas corriqueiros

Role-oriented programmingO padrão pode ser aplicado em diversas circunstâncias

Subject-oriented programmingO padrão proporciona um entendimento comum entre as pessoas

Page 19: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

outros paradigmas != OOImperativoAbstração de conceitos do mundo real

EstruturadoInteligência Artificial, Linguística e Softwares

FuncionalConjunto de classes que definem objetos de um sistema

ProceduralClasse, herança, interface, pacote, polimorfismo, mensagemEvent-DrivenC++, C#, Java, Python, Ruby, SmallTalk, PHP 4

Page 20: Design Patterns

EVANDRO VENANCIO - DESIGN PATTERNS

DeclarativaUtilizar, especificar e definir padrões como solução

Automata-based programmingAparece pela primeira vez em 1970 em seus livros

Page 21: Design Patterns

Obrigado!

Evandro VenancioSoftware Architect

http://[email protected]@evenancio