|
|
Line 1: |
Line 1: |
| {{NAVPO}}
| | #REDIRECT [[ist:Introdução aos Padrões de Desenho]] |
| {{TOCright}}
| |
| <!--Introdução aos padrões de desenho: o que são, para que servem, cuidados na selecção e utilização. Padrão Singleton. Exemplo. -->
| |
| | |
| '''"Someone has already solved your problem."'''
| |
| | |
| Cada padrão:
| |
| * Descreve um problema recorrente
| |
| * Captura a estrutura estática e dinâmica, assim como a colaboração entre os principais actores
| |
| | |
| Categorias básicas:
| |
| * "creational" -- "Simple" Factory, Factory Method, Abstract Factory, Singleton
| |
| * "structural" -- Adapter, Bridge, Composite, Decorator, Façade, Proxy, ...
| |
| * "behavioral" -- Command, Iterator, Observ er, State, Strategy, Template Method, Visitor, ...
| |
| | |
| == Livros ==
| |
| {| style="border-width: 0px !important;"
| |
| ! style="width: 50%; vertical-align: top;"|
| |
| <runphp>
| |
| echo '<em><img border=1 style="height: 150pt;" src="http://akamaicovers.oreilly.com/images/9780596007126/lrg.jpg"><br><a href="http://www.oreilly.com/catalog/hfdesignpat/"><b>Head First Design Patterns</b></a></em><br><span>Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates</span><br><span>2004 (Outubro)</span>, <span><a href="http://www.oreilly.com/">OReilly</a>. ISBN 0596007124.<br><a href="http://www.oreilly.com/catalog/hfdesignpat/toc.pdf">Índice</a> (PDF), <a href="http://www.oreilly.com/catalog/hfdesignpat/errata/">Errata</a></span>';
| |
| </runphp>
| |
| ! style="width: 50%; vertical-align: top;"|
| |
| <runphp>
| |
| echo '<em><img border=1 style="height: 150pt;" src="http://www.aw-bc.com/bigcovers/0201633612.jpg"><br> <a href="http://www.awprofessional.com/bookstore/product.asp?isbn=0201633612&rl=1"><b>Design Patterns: Elements of Reusable Object-Oriented Software</b></a></em><br>
| |
| <span>Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides</span>,
| |
| <span>1995</span>,
| |
| <span><a href="http://www.awprofessional.com/">Addison Wesley Professional</a>. ISBN 0201633612.</span>
| |
| </li>';
| |
| </runphp>
| |
| |}
| |
| | |
| == Quiz ==
| |
| Emparelhar os nomes dos padrões com a frase mais apropriada: todas as frases têm uma associação.
| |
| | |
| {|
| |
| |1. Decorator
| |
| |A. Encapsula um objeto e fornece uma interface diferente para ele.
| |
| |-
| |
| |2. State
| |
| |B. As subclasses decidem como implementar passos de um algoritmo.
| |
| |-
| |
| |3. Iterator
| |
| |C. As subclasses decidem que classes concretas criar.
| |
| |-
| |
| |4. Façade
| |
| |D. Garante que um e apenas um objeto é criado.
| |
| |-
| |
| |5. Strategy
| |
| |E. Encapsula comportamentos intercambiáveis e usa delegação para decidir qual usar.
| |
| |-
| |
| |6. Proxy
| |
| |F. Os clientes tratam colecções de objetos e objetos individuais de maneira uniforme.
| |
| |-
| |
| |7. Factory Method
| |
| |G. Encapsula comportamentos baseados no estado e usa delegação para alternar entre comportamentos.
| |
| |-
| |
| |8. Adapter
| |
| |H. Fornece uma forma de percorrer uma colecção de objetos sem expor a sua implementação.
| |
| |-
| |
| |9. Observer
| |
| |I. Simplifica a interface de um conjunto de classes.
| |
| |-
| |
| |10. Template Method
| |
| |J. Encapsula um objeto para fornecer novo comportamento.
| |
| |-
| |
| |11. Composite
| |
| |K. Permite que um cliente crie famílias de objectos sem especificar suas classes concretas.
| |
| |-
| |
| |12. Singleton
| |
| |L. Permite que objectos sejam notificados quando um estado é alterado.
| |
| |-
| |
| |13. Abstract Factory
| |
| |M. Encapsula um objecto para controlar o acesso a ele.
| |
| |-
| |
| |14. Command
| |
| |N. Encapsula um pedido como um objeto.
| |
| |}
| |
| | |
| Exercício adaptado de "Head First Design Patterns" (consultar chave no livro).
| |
| | |
| [[category:Ensino]]
| |
| [[category:PO]]
| |