Introdução aos Padrões de Desenho: Difference between revisions

From Wiki**3

 
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]]

Latest revision as of 17:01, 7 November 2018