ebooksgratis.com

Project Gutenberg

Contents Listing Alphabetical by Author:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Unknown Other
Contents Listing Alphabetical by Title:
# A B C D E F G H I J K L M N O P Q R S T U V W Y Z Other

Amazon - Audible - Barnes and Noble - Everand - Kobo - Storytel 

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Padrões de projeto de software - Wikipédia, a enciclopédia livre

Padrões de projeto de software

Origem: Wikipédia, a enciclopédia livre.

Os padrões de projeto de software ou padrões de desenho de software, também muito conhecido pelo termo original em inglês: Design Patterns, descrevem soluções para problemas recorrentes no desenvolvimento de sistemas de software orientados a objetos. Um padrão de projeto estabelece um nome e define o problema, a solução, quando aplicar esta solução e suas conseqüências.

Os padrões de projeto visam facilitar a reutilização de soluções de desenho - isto é, soluções na fase de projeto do software, sem considerar reutilização de código. Também acarretam um vocabulário comum de desenho, facilitando comunicação, documentação e aprendizado dos sistemas de software.

Índice

[editar] História

O conceito de padrão de projeto foi criado na década de 70 pelo arquiteto Christopher Alexander. [1][2] Em seus livros Notes on the Synthesis of Form, The Timeless Way of Building e A Pattern Language, ele estabelece que um padrão deve ter, idealmente, as seguintes características:

  • encapsulamento; um padrão encapsula um problema/solução bem definido. Ele deve ser independente, específico e formulado de maneira a ficar claro onde ele se aplica.
  • generalidade; todo padrão deve permitir a construção de outras realizações a partir deste padrão.
  • equilíbrio; quando um padrão é utilizado em uma aplicação, o equilíbrio dá a razão, relacionada com cada uma das restrições envolvidas, para cada passo do projeto. Uma análise racional que envolva uma abstração de dados empíricos, uma observação da aplicação de padrões em artefatos tradicionais, uma série convincente de exemplos e uma análise de soluções ruins ou fracassadas pode ser a forma de encontrar este equilíbrio.
  • abstração; os padrões representam abstrações da experiência empírica ou do conhecimento cotidiano.
  • abertura; um padrão deve permitir a sua extensão para níveis mais baixos de detalhe.
  • combinatoriedade; os padrões são relacionados hierarquicamente. Padrões de alto nível podem ser compostos ou relacionados com padrões que endereçam problemas de nível mais baixo.

Além da definição das características de um padrão, Alexander definiu o formato que a descrição de um padrão deve ter. Ele estabeleceu que um padrão deve ser descrito em cinco partes:

  • nome; uma descrição da solução, mais do que do problema ou do contexto.
  • exemplo; uma ou mais figuras, diagramas ou descrições que ilustrem um protótipo de aplicação.
  • contexto; a descrição das situações sob as quais o padrão se aplica.
  • problema; uma descrição das forças e restrições envolvidos e como elas interagem.
  • solução; relacionamentos estáticos e regras dinâmicas descrevendo como construir artefatos de acordo com o padrão, freqüentemente citando variações e formas de ajustar a solução segundo as circunstâncias. Inclui referências a outras soluções e o relacionamento com outros padrões de nível mais baixo ou mais alto.

Em 1987, a partir dos conceitos criados por Alexander, os programadores Kent Beck e Ward Cunningham propuseram os primeiros padrões de projeto para a área da ciência da computação. Em um trabalho para a conferência OOPSLA, eles apresentaram alguns padrões para a construção de janelas na linguagem Smalltalk. [3] Nos anos seguintes Beck, Cunningham e outros seguiram com o desenvolvimento desta idéias.

O movimento ao redor de padrões de projeto ganhou popularidade com o livro Design Patterns: Elements of Reusable Object-Oriented Software, publicado em 1995. Os autores desse livro são Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, conhecidos como a "Gangue dos Quatro" (Gang of Four) ou simplesmente "GoF". Posteriormente, vários outros livros do estilo foram publicados, como Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, que introduziu um conjunto de padrões conhecidos como GRASP (General Responsibility Assignment Software Patterns).

[editar] Padrões GoF

Os padrões "GoF" são organizados em famílias de padrões: de criação, estruturais e comportamentais. Os padrões de criação são relacionados à criação de objetos, os estruturais tratam das associações entre classes e objetos e os comportamentais das interações e divisões de responsabilidades entre as classes ou objetos.

Um padrão "GoF" também é classificado segundo o seu escopo; de classe ou de objeto. Nos padrões com escopo de classe os relacionamentos que definem este padrão são definidos através de herança e em tempo de compilação. Nos padrões com escopo de objeto o padrão é encontrado no relacionamento entre os objetos definidos em tempo de execução.

Padrões "GoF" organizados nas suas famílias:

[editar] Padrões de criação

[editar] Padrões estruturais

[editar] Padrões comportamentais

[editar] Padrões GRASP

Referências

  1. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. 1.ed. Estados Unidos da América: Addison-Wesley, 1995. ISBN 0201633612
  2. Doug Lea. Christopher Alexander:An Introduction for Object-Oriented Designers. Página visitada em 18 de abril de 2007.
  3. Kent Beck, Ward Cunningham. Using Pattern Languages for Object-Oriented Programs. Página visitada em 18 de abril de 2007.

[editar] Bibliografia

  • Christopher Alexander. Notes on the Synthesis of Form. Estados Unidos da América: Harvard University Press, 1964. ISBN 0674627512
  • Christopher Alexander. The Timeless Way of Building. Estados Unidos da América: Oxford University Press, 1979. ISBN 0195024028
  • Christopher Alexander. A Pattern Language. Estados Unidos da América: Oxford University Press, 1977. ISBN 0195019199
  • Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 1.ed. Estados Unidos da América: Prentice Hall, 2004. 736 p. ISBN 0131489062
  • Gregor Hohpe, Bobby Woolf. Enterprise Integration Patterns: Designing, Building, And Deploying Messaging Solutions. 1.ed. Estados Unidos da América: Addinson-Wesley, 2004. 659 p. ISBN 0321200683
  • Pablo Dall'Oglio. PHP Programando com Orientação a Objetos: Inclui Design Patterns. 1.ed. São Paulo: Novatec, 2007. 576 p. ISBN 978-85-7522-137-2
  • Alexandre Altair de Melo e Mauricio G. F. Nascimento. PHP Profissional: Aprenda a desenvolver sistemas profissionais orientados a objetos com padrões de projeto. 1.ed. São Paulo: Novatec, 2007. 464 p. ISBN 978-85-7522-141-9

[editar] Ligações externas

Static Wikipedia (no images) - November 2006

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu