design patterns
Post on 11-Jun-2015
1.335 Views
Preview:
DESCRIPTION
TRANSCRIPT
EVANDRO VENANCIO
design patterns
Strategy
Observer
FFactory
eDecorator
BComposite
mVisitor
@Interpreter
j Flyweight
@evandro.venancio@gmail.com
Contato
Bridge
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
EVANDRO VENANCIO - DESIGN PATTERNS
DeclarativaUtilizar, especificar e definir padrões como solução
Automata-based programmingAparece pela primeira vez em 1970 em seus livros
Obrigado!
Evandro VenancioSoftware Architect
http://evenancio.wordpress.comevandro.venancio@gmail.com@evenancio
top related