(→Livros) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
Categorias básicas: | Categorias básicas: | ||
* "creational" -- "Simple" Factory, Factory Method, Abstract Factory, Singleton | * "creational" -- "Simple" Factory, Factory Method, Abstract Factory, Singleton | ||
− | * "structural" -- Bridge, Composite, Proxy, ... | + | * "structural" -- Adapter, Bridge, Composite, Decorator, Façade, Proxy, ... |
− | * "behavioral" -- Command, Iterator, Strategy, Visitor, ... | + | * "behavioral" -- Command, Iterator, Observ er, State, Strategy, Template Method, Visitor, ... |
== Livros == | == Livros == | ||
+ | {| style="border-width: 0px !important;" | ||
+ | ! style="width: 50%; vertical-align: top;"| | ||
<runphp> | <runphp> | ||
− | echo '<em><img | + | echo '<em><img border=1 style="height: 150pt;" src="https://learning.oreilly.com/library/cover/0596007124/250w/"><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> | </runphp> | ||
− | + | ! style="width: 50%; vertical-align: top;"| | |
<runphp> | <runphp> | ||
− | echo '<em><img border=1 | + | echo '<em><img border=1 style="height: 150pt;" src="https://www.pearsonhighered.com/assets/bigcovers/0/2/0/1/0201633612.jpg"><br> <a href="https://www.pearson.com/us/higher-education/program/Gamma-Design-Patterns-Elements-of-Reusable-Object-Oriented-Software/PGM14333.html"><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>Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides</span>, | ||
<span>1995</span>, | <span>1995</span>, | ||
Line 26: | Line 28: | ||
</li>'; | </li>'; | ||
</runphp> | </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:Ensino]] | ||
[[category:PO]] | [[category:PO]] |
"Someone has already solved your problem."
Cada padrão:
Categorias básicas:
|
|
---|
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).