Você está na página 1de 5

1. O que e qual a importncia de um padro de projeto?

Descrevem solues para problemas recorrentes no desenvolvimento de software, e quando


utilizados de forma correta, refletem diretamente no aumento da qualidade do cdigo, tornando-o
mais flexvel, elegante e reusvel
2. Explique o que o conceito de uma responsabilidade e por que so importantes?
!m contrato ou obriga"o de um tipo ou classe #trav$s da classifica"o podemos perceber a
import%ncia, pois a responsabilidade determina o que o ob&eto dever fazer ou con'ecer
(azer) fazer algo, iniciar aes em outros obe&tos, controlar e coordenar atividades em outros
ob&etos*
+aber) con'ecer dados privados encapsulados, con'ecer ob&etos relacionados, con'ecer coisas
que podem ser derivadas ou calculadas*
3. Cite exemplos da vantaem para a utili!a"o de padr#es de so$t%are.
(lexibilidade, reutiliza"o e manuten"o do cdigo*
,rganiza"o do cdigo*
(acilita o crescimento do sistema sem ter que sair alterando vrias classes*
+abendo usar permite alta coes"o e baixo acoplamento*
&. Cite desvantaens associadas ao uso de padr#es.
#umento do cdigo e consequentemente da complexidade -sto nos faz refletir sobre a possibilidade
de estarmos desnecessariamente aumentando a complexidade do design .ortanto, $ necessrio
n"o somente con'ecer os padres de pro&eto, mas sim, realmente entend/-los para identificar
quando utiliz-los e usufruir positivamente da experi/ncia 'erdada
'. Cite caracter(sticas essenciais para a de$ini"o de um bom padro de projeto.
)ome - descreve a ess/ncia do padr"o
Objetivo - descreve como o padr"o atua
*roblema - descreve o problema
+olu"o - descreve a solu"o
Conseq,-ncias - descreve os benefcios da utiliza"o do padr"o
.. Explique e di$erencie cole"o/ cat0loo/ sistema ou linuaens de padr#es.
0ole"o) padres sem relacionamento explcito +ua rela"o consiste na apresenta"o em uma
mesmo evento*
0atlogo) existe apenas uma rela"o superficial entre os padres*
+istema de .adres) quando padres s"o sobre um mesmo tema, podem ser unidos em um
sistema de padres*
1inguagem de .adres) quando vrios padres s"o usados para a resolu"o de um grande
problema comum
1. 2ual a importncia da de$ini"o de um $ormato na elabora"o de um padro de projeto?
!m padr"o de pro&eto nomeia, abstrai e identifica os aspectos c'aves de uma estrutura de pro&eto
comum para torna-la 2til para a cria"o de um pro&eto orientado a ob&etos reutilizvel (acilita a
identifica"o do padr"o e quando utilizar .or exemplo) adapter, atrav$s do nome eu & sei que esse
padr"o $ para adaptar alguma coisa, posso n"o saber a forma como usar mas sei para que serve
s pelo nome
3. 4- ' campos de um $ormato can5nico.
)ome) instrues de como solucionar o problema*
*roblema) descreve o problema que o padr"o resolve diante de um certo contexto*
Contexto) circunst%ncias iniciais dentro das quais o problema emerge e para as quais a solu"o $
dese&vel 3 uma situa"o que ocorre antes da aplica"o do padr"o*
6or"as) descri"o dos aspectos relevantes para o problema e que influenciam na escol'a de uma
solu"o para esse problema*
+olu"o) instrues de como solucionar o problema*
Exemplos) descreve um exemplo de aplica"o do padr"o -lustra como o padr"o pode ser utilizado*
Contexto resultante7 descreve as circunst%ncias que ocorrem aps a aplica"o do padr"o,
podendo ter uma subse"o c'amada de 40onseq5/ncias6 7tanto boas, quanto ruins8*
8acional) mostra porque a solu"o $ uma boa solu"o e como as 4(oras6 foram priorizadas 9sta
se"o afirma realmente como o padr"o funciona, porque funciona e porque ele $ bom*
*adr#es relacionados7 descreve os relacionamentos desse padr"o com outros dentro da mesma
linguagem ou fora dela*
9sos con:ecidos7 descreve ocorr/ncias con'ecidas do padr"o e sua aplica"o em sistemas
existentes 9sta se"o a&uda a validar o padr"o, verificando se ele $ realmente uma solu"o
provada para um problema recorrente*
;. 4- ' campos de um $ormato <o6.
)ome e Classi$ica"o7
o nome do padr"o deve conter a sua ess/ncia, deve ser usado para descrever o problema e a
solu"o em uma ou duas palavras
# classifica"o do padr"o, que pode ser) padres de cria"o 7est"o relacionados : cria"o de
ob&etos8, padres estruturais 7tratam das associaes entre classes e ob&etos8 ou padres
comportamentais 7tratam das interaes e divises de responsabilidades entre as classes ou
ob&etos8*
=nten"o) apresenta um resumo do que o padr"o faz, levando em conta quais s"o as abordagens
do pro&eto e do problema s"o tratados por ele*
>ambm Con:ecido Como7 expe outros nomes con'ecidos para o padr"o, se existirem*
?otiva"o) descreve um cenrio que ilustra um problema de pro&eto e como as estruturas de
classes e ob&etos no padr"o resolvem o problema , cenrio a&uda a entender a descri"o mais
abstrata do padr"o que vem a seguir
@plicabilidade) descreve quais as situaes que o padr"o pode ser aplicado #qui, podem ser
includos exemplos de pro&etos onde o padr"o pode ser apropriado, al$m de dicas de como
recon'ecer tais situaes*
Estrutura) representa"o grfica da estrutura bsica da solu"o por meio de diagramas de classes
e;ou seq5/ncia na nota"o !<1 =>ooc'et al ?@@@A, por exemplo*
*articipantes) descreve as classes, ob&etos ou componentes participantes do padr"o com suas
respectivas responsabilidades*
Colabora"#es) descreve como os participantes colaboram entre si para cuidarem de suas
responsabilidades*
Conseq,-ncias) mostra quais s"o os resultados 7positivos e negativos8 de se utilizar o padr"o
permitindo analisar os custos e benefcios da aplica"o do padr"o antes mesmo de aplic-lo*
-mplementa"o) descreve t$cnicas, dicas ou questes especficas da linguagem para implementar o
padr"o*
CAdio Exemplo) fragmentos de cdigos que ilustram como implementar o padr"o*
9sos Con:ecidos) exemplos encontrados do padr"o em sistemas reais para diferentes domnios*
*adr#es 8elacionados) descreve como o padr"o est relacionado com outros padres que se
referem ao mesmo problema, quais as diferenas entre eles e com quais outros padres este
deveria ser utilizado
1B. 4e$ina e explique a importncia de antiCpadr#es.
#bordagens comuns, mas ineficazes, para a resolu"o de problemas recorrentesB e que t/m duas
caractersticas)
-nicialmente a solu"o aparenta ser ben$fica, mas no longo prazo traz mais consequ/ncias
negativas do que positivas*
9xiste uma solu"o alternativa e replicvel
<ostram solues ruins para determinados problemas e como sair destas
CC 2uais as caracter(sticas erais dos padr#es <o6?
12. Como os padr#es <o6 podem ser classi$icados? 2ual a caracter(stica delas? Exempli$ique
um exemplo de cada. C +u7 Criacionais/ Estruturais/ Comportamentais.
.adres 0riacionais) envolvem a cria"o de instancias de ob&etos, todos fornecem alguma maneira
de desconectar o cliente dos ob&etos a partir dos quais ser"o geradas instancias*
9x) +ingleton) assegura que somente um ob&eto de uma determinada classe se&a criado em todo o
pro&eto*
!ma classe para gravar log do sistema, n"o existe a necessidade de ter vrios ob&etos para isso,
por isso utilizamos o singleton para cria"o de apenas um ob&eto dessa classe
.adres 9struturais) permitem que voc/ organize classes ou ob&etos em estruturas maiores*
9x) .roxD) envelopa um ob&eto para controlar o acesso a ele*
9m sistema & existem todos usam uma determinada classe para visualizar quem est acessando o
sistema em um determinado momento #gora foi decidido que dever ser feito autetinca"o e
somente pessoas autorizadas deveram ver quem est acessando E"o posso simplesmente alterar
a essa classe colocando a autentica"o, pois n"o sei quais outras classes utilizam ela .ortanto
posso criar uma classe proxD extendo a classe que quero que se&a autenticada e colocar a
autentica"o dentro da classe proxD, assim n"o altero a classe & existente e consigo realizar a
min'a autentica"o
.adres 0omportamentais) preocupam-se com a forma como as classes e ob&etos interagem e com
a distribui"o de responsabilidades
,bserver) permite notificar outros ob&etos quando ocorre uma mudana de estado*
9x) em um sistema ten'o que manter atualizada uma classe c'amada atividade, onde seus ob&etos
tem um atributo status, todo vez que este status mudar outros obe&tos que dependem desse ob&eto
dever"o ser notificados automaticamente para serem atualizados com a nova inform"o
13. +ob a Atica de inten"o/ indique como se classi$icam os padr#es <o6? C +u7 =nter$ace/
responsabilidade/ constru"o/ opera"o/ extenso.
-nterfaces) #dapter, facade, composite e bridge*
Fesponsabilidade) singleton, observer, mediator, proxD, c'ain of responsabilitD e flDweig't*
0onstru"o) builder, factorD met'od, abstract factorD, prototDpe e memento*
,peraes) template met'od, state, strategD, command e interpetrer*
9xtenses) decorator, iterator e visitor*
1&. Explique qual a importncia dos relacionamentos entre os padr#es <o6?
1'. 2ue tipo de problemas voc- percebe com o uso dos padr#es <o6?
1.. Explique com suas palavras o que e para que serve os seuintes padr#es7
#dapter) fornecer uma interface comum a ob&etos de classes diferentes que n"o podem se
comunicar, com o adapter essas classes passam a se comunicar*
(aade) fornecer uma interface 2nica para um subsistema, tornando mais fcil a utiliza"o da
aplica"o*
0omposite) uma estrutura em rvore que serve para representar 'ierarquia todo-parte, permite que
elementos do ob&eto composto se&am tratados como se fossem um 2nico ob&eto*
>ridge) separar a abstra"o da implementa"o para que os dois possam variar
indenpendentemente*
+ingleton) permite apenas uma inst%ncia da classe que est implementando o padr"o*
11. Explique com suas palavras o que e para que serve os seuintes padr#es7
,bserver) definir uma depend/cia um-para-muitos em ob&etos para que quando um ob&eto mudar o
seu estado, todos os seus dependentes possam ser automaticamente notificados e atualziados*
<ediator) definir uma interface que encapsula como um con&unto de ob&etos interagem*
.roxD) promover um substituto ou ponto de acesso atrav$s do qual um ob&eto possa controlar outro*
0'ain of FesponsibilitD) cria uma cadeia de ob&etos e vai passando a responsabilidade entre eles
at$ que um ob&eto possa responder pela c'amada*
(lDweig't) cria uma estrutura de compartil'amento de oob&etos pequenos*
13. Explique com suas palavras o que e para que serve os seuintes padr#es7
>uilder) dividir em pequenos passos a constru"o do ob&eto*
(actorD <et'od) define uma interface para criar um ob&eto, mas deixa a reponsabilidade de
instanciar o ob&eto para as subclasses*
#bstract (actorD) prover uma interface para criar famlias de ob&etos relacionados ou dependentes
sem rpecisar con'ecer as suas classes concretas*
.rototDpe) a partir de uma inst%ncia de um prottipo $ possvel criar vrios ob&etos a partir da cpia
deste prottipo
<emento) oferece uma maneira simples de salvar o estado interno de um ob&eto, podendo ser
restaurado o estado salvo
1;. @presente similaridades e di$eren"as entre aluns destes padr#es.
2B. 2ue tipo de relacionamentos podem ser $eitos entre 3 padr#es? 4- um exemplo.
21. @presente dois exemplos de aplica"#es de padr#es <o6 usadas numa biblioteca de uma
linuaem OO.
22. Explique sucintamente como inter$aces/ classes abstratas e :eran"as so normalmente
usadas na constru"o dos padr#es de projeto.
23. Escol:a tr-s padr#es e selecione um cen0rio poss(vel de aplica"o Dpre$erencialmente
mapeando reras de neAcioE.
2&. )o cen0rio de aplica"#es <o6/ apresente um exemplo propositalmente inadequado para uso
de um padro/ explicando onde est0 o erro e o que pode ser $eito.
2'. *ropon:a um )OFO padro/ destacando alumas caracter(sticas do mesmo/ de acordo com
um modelo can5nico ou no $ormato <o6.
2.. 4e$ina o que um padro arquitetural D*O+@E e qual a sua importncia.
21. 4ia o que e exempli$ique cen0rios para os seuintes padr#es7
Camadas
4utos e $iltros
GroHer
?FC
?icrocanal
8e$lexo
23. 4e$ina um processo pelo qual se pode de$inir um padro em camadas
2;. O modelo ?FC tanto <8@+* quanto arquitetural. Explique a sua importncia.
3B. Explique por que tecnoloias como re$lexo so importantes.
31. ?odele diaramas de classes em que pelo menos 3 padr#es em um sistema de$inido por
voc- podem ser usados.
32. 6a"a um exemplo comparativo entre um desenvolvimento sem padr#es de projeto <o6 e
outro com os padr#es/ justi$icando a importncia para uso dos mesmos.
33. 6a"a o mesmo para justi$icar o uso de um padro arquitetural.
3&. Explique qual a vantaem e desvantaem entre padr#es <8@+* e <o6.
3'. =denti$ique que tipo de diaramas 9?I podem ser usados na representa"o de padr#es
arquiteturais.