Você está na página 1de 13

Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy

Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor

Padres de Criao Padres Estruturais Padres de Comportamento


Padres de Projeto da GoF

Padres de projeto do POSA Categoriza os padres em 3 categorias Padres Arquiteturais Padres de Projeto Idiomas Padres Arquiteturais

Expressam um esquema de organizao estrutural para sistemas de software Oferecem um conjunto de subsistemas pr-definidos, especifica suas respectivas responsabilidades e inclui regras e diretrizes para organizar as relaes entre eles. Exemplos MVC Broker Layer Reflection

Padres de Projeto Oferece um esquema para refinar os subsistemas ou componentes de um sistema de software ou as relaes entre eles. So considerados padres de mdia escala Exemplos Singleton Observer Adapter Command Strategy

Idiomas Padro de baixo nvel especfico de uma linguagem de programao Mostra como se pode implementar um dado componente/classe ou interao entre componentes/classes usando os recursos de uma LP Exemplos Singleton em C++ ou em Java Counted Pointer: gerncia de memria em C++

A maioria das aplicaes web tem algumas funcionalidades (por exemplo, segurana), que so aplicveis a todas as requisies da aplicao. Para adicionar essa funcionalidade separadamente para cada requisio da aplicao seria demorado, propenso a erros e difcil de manter. Para resolver esse problema pode ser utilizado o design pattern Intercepting Filter. Propsito do Intercepting Filter: Executar pr e ps processamentos de algum processamento Design pattern da J2EE

Aplicabilidade O processamento desejado pode ter uma cadeia de processamentos ligados Pr e ps processamentos

Ex: Tradues Intercepting Filter Create Pluggable filters to process common services in a standard manner , without requiring changes to the core request . Introduced in Servlet specification 2.3 Filters allow on the fly transformations of payload and header of both the request into a resource and the response from a resource. Filters do not generally create a response or respond to a request as servlets do , rather they are used to modify the request or the response . Related to the decorator ( GOF ) pattern Front controller provides similar functionality , but is better suited to handling core processing. Examples of filter use - authentication filters , logging & auditing , Image conversion , data compression , encryption How to write a filter ?

Implement the javax.servlet.Filter interface


Container will call the doFilter() method.

The doFilter method will modify the request or response and then call the next
filter in the filter chain.

Padro que encapsula a lgica de apresentao de dados de negcios dinmicos ou, ainda, especifica que so usados ajudantes para adaptar os dados do modelo para a camada de apresentao da aplicao. Trata-se de View Helper.

Considere: I. Fornecer uma interface para criao de famlias de objetos relacionados ou dependentes, sem especificar suas classes concretas. Possibilitar o adiamento da instanciao para as subclasses. II. Garantir a existncia de apenas uma instncia de uma classe, mantendo um ponto global de acesso ao seu objeto. III. Possibilitar o armazenamento do estado interno de um objeto em um determinado momento, para que seja possvel retorn-lo a este estado, caso necessrio. I, II e III so, respectivamente, objetivos dos design patterns intitulados: Factory Method, Singleton e Memento.

O catlogo de padres de projeto (design patterns) do GoF contm 23 padres e


est, basicamente, dividido em trs sees: Creational, Structural e Behavioral.

No contexto dos padres de projeto: I. Oferecer uma interface simples para uma coleo de classes. II. Desacoplar uma abstrao de sua implementao para que ambas possam variar independentemente. Correspondem respectivamente a Faade e Bridge

Na engenharia de software, os padres de projetos comportamentais tratam das interaes e divises de responsabilidades entre as classes ou objetos. So exemplos tpicos dessa famlia: Chain of Responsability, Interpreter e Iterator.

Os design patterns: podem ser modelados utilizando-se a linguagem UML que


fornece um meio eficiente de modelar padres de projeto representando-os como colaboraes.

Sobre os design patterns, correto afirmar: O padro uma descrio de


conhecimento e experincia acumulados, uma soluo comprovada para um problema comum.

Sobre design pattern considere: I. No framework pode incluir cdigo de programao e conter vrios design patterns. II. No design pattern pode incluir cdigo de programao e conter vrios frameworks. III. Os design patterns so bastante abstratos e os frameworks menos abstratos. Est correto o que consta em I e III __________________ Questo TRT Creational Pattern Java que tem por objetivo separar a construo de um objeto complexo da sua representao, de tal forma que diversas representaes podem ser criadas em razo da necessidade do programa. Trata-se de Builder Pattern.

Os padres de projeto (design patterns) I. foram testados: refletem a experincia e conhecimento dos desenvolvedores que utilizaram estes padres com sucesso em seu trabalho; II. so reutilizveis: fornecem uma soluo pronta que s no pode ser adaptada para diferentes problemas; III. so expressivos: formam um vocabulrio comum para expressar grandes

solues sucintamente; IV. facilitam o aprendizado: reduzem o tempo de aprendizado de uma determinada biblioteca de classes; V. diminuem retrabalho: quanto mais cedo so usados, menor ser o retrabalho em etapas mais avanadas do projeto. Est INCORRETO o que consta APENAS em II

Em relao aos padres de projetos orientados a objetos, separar dados ou lgica de negcios da interface do usurio e do fluxo da aplicao para permitir que uma mesma lgica de negcios possa ser acessada e visualizada atravs de vrias interfaces, sem saber de quantas nem quais interfaces com o usurio esto exibindo seu estado, caracterstica do padro de projeto arquitetural Model-View-Controller

Acerca desses padres, avalie: I. Em termos de padres de criao de projetos, algumas classes, tais como um spooler de impresso ou um sistema de arquivos, devem ser instanciadas uma nica vez e prover um ponto de acesso global a esta instncia. --> Singleton II. Pertencente ao grupo de padres estruturais, utilizado para permitir que dois objetos se comuniquem mesmo que tenham interfaces incompatveis. --> Adapter III. Encapsula uma requisio como um objeto, permitindo que os clientes parametrizem diferentes requisies e filas, ou faam o registro de log de requisies e dem suporte a operaes que podem ser desfeitas. --> Command IV. Atribuir a responsabilidade do tratamento de um evento do sistema a uma classe que representa o prprio sistema ou classe que representa um caso de uso. --> Controller _______________ Analise: I. o responsvel pela especificao dos tipos de objetos a serem criados usando uma "instncia" prototpica e pela criao de novos objetos copiando

este prottipo.

--> Prototype

II. Define uma interface de nvel mais alto que torna o subsistema mais fcil de usar e fornece uma interface nica para um subsistema com diversas interfaces; compe o grupo de padres estruturais. --> Faade III. Integrante do grupo de padres comportamentais, ele prov uma forma de acessar sequencialmente os elementos de um agregado de objetos , sem expor a representao interna desse agregado. --> Iterator IV. As consequncias do uso deste padro que o encapsulamento mantido, j que objetos usam sua prpria informao para cumprir responsabilidades ; leva ao fraco acoplamento entre objetos e alta coeso, uma vez que objetos fazem tudo que relacionado sua prpria informao. --> Expert

As associaes entre classes e objetos so tratadas pelos Padres de Projeto de Software (Design Patterns) da famlia de Padres GoF Estruturais

Um padro de projeto de software (design pattern) que fornece uma interface para criao de famlias de objetos relacionados ou dependentes, sem especificar suas classes concretas, denomina-se factory method

Considere: I. Permite a instanciao de objetos em tempo de execuo. --> Factory II. Define objetos para possibilitar iteraes em uma lista de itens. --> foreach III. Define situao onde necessrio haver somente uma instncia de classe. --> Singleton ___________________ Deseja-se que uma aplicao possa manipular diferentes tipos de bancos de dados de modo transparente s classes que necessitam de servios de acesso a dados. Inicialmente ser necessrio fornecer suporte a bancos de dados XML e SQL, entretanto novos tipos podero ser futuramente adicionados. A soluo proposta a seguinte:

1. Uma classe abstrata (DB) ser responsvel por instanciar um objeto correspondente ao tipo de banco de dados desejado. Isso ser feito atravs do mtodo esttico getDB(), que ir retornar um objeto de uma de suas subclasses concretas, de acordo com o parmetro (tipo) passado. 2. O objeto criado no passo anterior ir instanciar conexes e consultas correspondentes ao tipo de DB criado; isto , caso um DB XML tenha sido instanciado, apenas consultas XML e conexes XML sero instanciadas; caso um DB SQL tenha sido instanciado, apenas consultas SQL e conexes SQL sero instanciadas. O diagrama de classe a seguir ilustra a estrutura descrita acima.

Qual padro de projeto foi utilizado na soluo proposta?

a) Adapter b) Builder c) Composite d) Abstract Factory e) Chain of Responsibility

Software Design Pattern descreve uma soluo geral reutilizvel para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. No um cdigo final, uma descrio ou modelo de como resolver o problema do qual trata, que pode ser usada em muitas situaes diferentes. Os Padres de Projeto normalmente definem as relaes e interaes entre as classes ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, esto num nvel de generalidade mais alto. Abstract Factory: permite a criao de famlias de objetos relacionados ou dependentes, atravs de uma nica interface e sem que a classe concreta seja especificada. utilizado na implementao de um toolkit que disponibilize controles que funcionem em diferentes interfaces grficas, tal como Motif, GTK+ (GNOME) ou Qt (KDE). Builder: permite a separao da construo de um objeto complexo da sua representao, de forma que o mesmo processo de construo possa criar diferentes representaes. Composite: Aqui, o objeto composto possui um conjunto de outros objetos que esto na mesma hierarquia de classes a que ele pertence. O padro composite normalmente utilizado para representar listas recorrentes - ou recursivas - de elementos. Alm disso, esta forma de representar elementos compostos em uma hierarquia de classes permite que os elementos contidos em um objeto composto sejam tratados como se fossem um nico objeto. Desta forma, todos os mtodos comuns s classes que representam objetos atmicos da hierarquia podero ser aplicveis tambm ao conjunto de objetos agrupados no objeto composto. Chain Of Responsibility: epresenta um encadeamento de objetos receptores para o processamento de uma srie de solicitaes diferentes. Esses objetos receptores passam a solicitao ao longo da cadeia at que um ou vrios objetos a tratem. Cada objeto receptor possui uma lgica descrevendo os tipos de solicitao que capaz de processar e como passar adiante aquelas que requeiram processamento por outros receptores. A delegao das solicitaes pode formar uma rvore de recurso, com um mecanismo especial para insero de novos receptores no final da cadeia existente.

Um exemplo da aplicao desse padro o mecanismo de herana nas linguagens orientadas a objeto: um mtodo chamado em um objeto buscado na classe que implementa o objeto e, se no encontrado, na superclasse dessa classe, de maneira recursiva.

O padro de projeto singleton usado para restringir


a) a instanciao de uma classe para objetos simples. b) a instanciao de uma classe para apenas um objeto. c) a quantidade de classes d) as relaes entre classes e objetos. e) classes de atributos complexos.

O padro de projeto Factory prov uma classe de deciso que retorna

a) um objeto de uma de suas subclasses, sem fixao de parmetros. b) um atributo de uma de suas classes conexas, com base em um parmetro reservado. c) um objeto de uma de suas subclasses, com base em um parmetro recebido. d) um atributo de uma de suas classes conexas, sem fixao de parmetros. e) um objeto de uma de suas subclasses, com parmetros fatorados.

Os padres de projeto (Design Patterns) so classificados nas categorias:


a) Situacional. Estrutural. Complementar. b) Criacional. Evolutiva. Contingencial. c) Compartimental. Vinculada. Comportamental. d) Criacional. Step-by-step. Orientada a requisitos. e) Criacional. Estrutural. Comportamental.

Podem ser classificados por propsito Padres de Criao: Abstraem o processo de criao de objetos a partir da instanciao de classes Padres Estruturais:Tratam da forma como classes e objetos esto organizados para formar estruturas
maiores

Padres Comportamentais: Preocupam-se com algoritmos e responsabilidades dos objetos

Durante o desenvolvimento de um sistema para suporte a uma rede social, um desenvolvedor decidiu criar a facilidade de uma pessoa ter uma lista de amigos para

poder enviar e-mails, postagens e/ou fotos. Essa lista pode conter um nmero indefinido de amigos ou de outras listas de amigos, criando uma estrutura recursiva. O padro de projeto que descreve essa estrutura
a) Abstract factory b) Chain of responsibility c) Composite d) Iterator e) Module

Composite , normalmente, utilizado para

representar listas recorrentes ou recursivas de

elementos
D pra matar pelo final da questo "O padro de projeto que descreve essaestrutura ". Composite o nico estrutural.

Abstract Factory (Criao) Chain of Responsability (Comportamental) Composite (Estrutural) Iterator (Comportamental)
Module (no exite, ou pelo menos no faz parte do GoF)

Faade: Classificado como estrutural e escopo objeto.


Objetivo: Prover uma interface unificada para o conjunto de interfaces de um subsistema. Define uma interface de alto nvel que faz um subsistema mais fcil de usar. Motivao: Estruturar um sistema em subsistemas contribui para reduzir sua complexidade. A dependncia entre subsistemas pode ser minimizada atravs do uso de um objeto Fachada, o qual prov uma interface nica e uniforme para as diversas funcionalidades de um subsistema. Consequncias: Promove acoplamento fraco entre o subsistema e seus clientes; No entanto, no evita que aplicaes possam acessar diretamente as subclasses do sistema, se assim o desejarem.

Para facilitar a manuteno da aplicao, h um design pattern que tem como objetivo principal centralizar o acesso aos dados em uma nica camada. Esse design pattern o

DAO

DAO (acrnimo de Data Access Object), um padro para persistncia de dados que permite separar regras de negcio das regras de acesso a banco de dados. Numa aplicao que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexes, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO.

O desenvolvimento de software uma atividade que apresenta dificuldades, ligada ao entendimento do problema. Design Patterns surgiram na busca de solues para as dificuldades, tornando-se um mecanismo eficiente no compartilhamento de conhecimento entre os desenvolvedores. Gamma prope um modo de categorizao dos DESIGN PATTERNS, definindo famlias de padres relacionados, descritos a seguir. I. Abrange a configurao e inicializao de objetos e classes. II. Lida com as interfaces e a implementao das classes e dos objetos. III. Lida com as interaes dinmicas entre grupos de classes e objetos. Essas famlias so denominadas, respectivamente,

a) Structural Patterns, Standard Patterns e Creational Patterns. b) Behavioral Patterns, Structural Patterns e Standard Patterns. c) Creational Patterns, Structural Patterns e Behavioral Patterns. d) Standard Patterns, Creational Patterns e Structural Patterns.

Os padres de projeto que tem a classificao pelo propsito so as seguintes:

# Criao Abrange a configurao e inicializao de objetos e classes.(Um exemplo seria o padro de projeto Builder) # Estrutura Lida com as interfaces e a implementao das classes e dos objetos.(Um exemplo da uma interface que lida com a implementao dos objetos seria o padro de projeto Facade) #comportamento: Lida com as interaes dinmicas entre grupos de classes e objetos.(Um exemplo seria o padro de projeto Observer no escuta um grupo de Objetos)

Analise o texto:

um design pattern que permite que uma aplicao seja desenvolvida de forma que a camada de acesso aos dados seja isolada das camadas superiores. Numa aplicao que utiliza a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como estabelecimento de conexes, mapeamento de objetos Java para tipos de dados SQL ou execuo de comandos SQL, devem ser feitas por classes representadas nesse design pattern.
O texto faz referncia ao design pattern

a) Data Business Object.

b) Data Access Object. c) Data Command Object. d) Session Faade. e) Data Transfer Object.

O DAO abstrai a implementao de acesso a base de dados para o Business Objectpara permitir o acesso transparente fonte de dados. O BO delega tambm dados de carga e operaes de armazenamento para o DAO.