Anda di halaman 1dari 5

UmEstudoSobrePadresdeProjeto

AntonioEriveltonFacundodaCunha1,taloBandeiraPereiraLeite1,DavidSena
Oliveira1
UniversidadeFederaldoCear(UFC)CampusQuixadCEP36900000Quixad
CEBrasil
eng.erivelton@gmail.com/italobpl94@gmail.com

Abstract.Thisarticledescribestheconceptofobjectorienteddesignpatterns
and,soonafter,wewillidentifythecharacteristicsofdesignpatterns,howto
select therightpatternfor yourproject andhowitcanbeappliedtothe
resolutionofyourproblem.
Resumo.Esteartigodescreveoconceitodeorientaoaobjetosepadresde
projeto, logo aps, vamos identificar as caractersticas dos padres de
projeto, como selecionar os padres corretos para o seu projeto e como
podemseraplicadosparaaresoluodoseuproblema.

1.Introduo
Apesardeespecficos,ossistemaspossuemdiversascaractersticassemelhantes,
ouseja,muitosproblemasserepetememcontextosdiferentes.
Suponhaqueumdeterminadoproblemaocorreremsistemas diferentes.Em
cadasistema,esseproblemapodeserresolvidodeumaformadiferente.Ento,teramos
variassoluesparaomesmoproblema.Quandoencontramosumaboasoluo,nsa
utilizamosrepetidamente.Consequentemente,vocencontrarpadres,declassesede
comunicao de entres objetos, que reaparecem frequentemente em muitos sistemas
orientadosaobjetos. Esses padres resolvem problemas especficos de projetos e
tornam os projetos orientados a objetos mais flexveis e, em ltima instncia,
reutilizveis.
Paranoperdertempoedinheiroelaborandosoluesdiferentesparaomesmo
problema,poderamosescolherumasoluopadroeadotlatodavezqueoproblema
correspondenteocorrer.
Otrabalhoapresentado nesseartigotemcomoobjetivodemonstrarousode
padresdeprojeto.

2.DefiniodeOrientaoaobjetos
Aorientaoaobjetosumparadigmadeanlise,projetoeprogramaodesistemas
desoftwarebaseadonacomposioeinteraoentrediversasunidades desoftware
chamadasdeobjetos.
Abaixo,algumascaractersticasdossistemasorientadosaobjetos:
Modularidade:Decomposiodeumproblemaempequenospedaos,paragerenciar
complexidade.

Encapsulamento:Consistenaseparaodeaspectosinternoseexternosdeumobjeto.
Estemecanismoutilizadoamplamenteparaimpediroacessodiretoaoestadodeum
objeto(seusatributos),disponibilizandoexternamenteapenasosmtodosquealteram
estesestados.
Polimorfismo:Permitequerefernciasdetiposdeclassesmaisabstratasrepresentemo
comportamentodasclassesconcretasquereferenciam.Assim,possveltratarvrios
tiposdemaneirahomognea(atravsdainterfacedotipomaisabstrato).

3.HeranadeClasseVersusHeranadeInterface
importantecompreenderadiferenaentreclassedeobjetoeseutipo.
Aclassedeumobjetodefinecomoeleimplementado.Aclassedefineoestadointerno
doobjetoeaimplementaodesuasoperaes.Emcontrasteaisso,otipodeum
objetosereferesomentesuainterfaceoconjuntodesolicitaessquaiselepode
responder.Umobjetopodetermuitostipos,eobjetosdediferentesclassespodemtero
mesmotipo.

4.DefiniodePadresdeProjeto
ChristopherAlexandreafirma:cadapadrodescreveumproblemanoambienteeo
cernedasuasoluo,detalformaquevocpossausaressasoluomaisdeummilho
devezes,semnuncafazlodamesmamaneira.MuitoemboraAlexanderestivesse
falandoacercadepadresemconstruesecidade,oquedizverdadeiroemrelao
aospadresdeprojetosorientadosaobjetos.Nossassoluessoexpressasemtermos
deobjetoseinterfacesemvezdeparedeseportas,masnocernedeambosostiposde
padresestsoluoparaumproblemanumdeterminadocontexto.
Emgeral,umpadroconsisteemquatroelementosessenciais:
1.
O nome do padro uma referencia que podemos usar para descrever um
problema deprojeto,suas solues econsequncias emumaouduaspalavras.Dar
nomeaumpadroaumentaimediatamenteonossovocabulriodeprojeto.
2.
Oproblemadescreveemquesituaoaplicaropadro.Eleexplicaoproblema
eseucontexto.
3.
A soluo descreve os elementos que compem o padro de projeto, seus
relacionamentos,suasresponsabilidadesecolaboraes.
4.
Asconsequnciassoosresultadoseanlisesdasvantagensedesvantagensda
aplicaodopadro.
OspadrespodemserdividoemduascategoriasGoFeGRASP,masnesseartigo
falaremossdoGoF,ondesoorganizadosem3famlias:
Padresdecriao:relacionadoscriaodeobjetos.
Padresestruturais:tratamdasassociaesentreclasseseobjetos.
Padrescomportamentais:tratamdasinteraesedivisesderesponsabilidadesentre
asclassesouobjetos.

DivisodosPadresdeProjeto
Proposito
Escopo

Classe

DeCriao

Estrutural

Comportamental

FactoryMethod

Adapter(Class)

Interpreter
TemplateMethod

Objeto

AbstractFactory

Adapter(Object)

ChainofResponsibility

Builder

Bridge

Command

AbstractFactory

Composite

Iterator

Singleton

Decorator

Memento

Facade

Observer

Flyweight

State

Proxy

Strategy
Visitor

5.DescrevendoPadrodeProjeto
Nsdescrevemospadresdeprojetousandoumformatoconsistente.Cadapadro
dividoemseesdeacordocomogabaritoaseguir:
I.Nomeeclassificaodopadro:Onomedopadroexpressaasuaprpriaessncia
deformasucinta.
II.Intenoeobjetivo:umacurtadeclaraoquerespondesseguintesquestes:o
quefazopadrodeprojeto?Quaisosseusprincpiosesuainteno?Quetpicoou
problemaparticulardeprojetoeletrata?
III. Tambm conhecido como: Outros nomes bem conhecidos para o padro, se
existirem.
IV.Motivao:Umcenrioqueilustraumproblemadeprojetoecomoasestruturasde
classeseobjetosnopadrosolucionaoproblema.
V.Aplicabilidade:Quaissoassituaesnasquaisopadropodeseraplicado?Que
exemplos de maus projetos ele pode tratar? Como voc pode reconhecer essas
situaes?
VI.Estrutura: Uma representao grfica das classes do padro usando uma notao
baseadanaObjectModelingTechnique.Nstambmusamosdiagramasdeinterao
parailustrarsequenciasdesolicitaesecolaboraesentreobjetos.
VII.Participantes:Asclassese/ouobjetosqueparticipamdopadrodeprojetoesuas
responsabilidades.
VIII.Colaboraes: Como as classes participantes colaboram para executar suas
responsabilidades.
IX.Implementao: Que armadilhas, sugestes ou tcnicas voc precisa conhecer da
implementaodopadro?Existemconsideraesespecficasdelinguagem?

X.Exemplodecdigo:Fragmentosoublocosdecdigosqueilustramcomovocpode
implementaremalgumalinguagemdeprogramao.
XI.Usosconhecidos:Exemplosdopadroencontradosemsistemasreais.

6.ComoSelecionarumPadrodeProjeto
Commaisde20padresdeprojetonocatalogoparaescolher,podeserdifcilencontrar
aquelequetrataumproblemadeprojetoparticular,especialmenteseocatlogofor
novo para voc. Aqui apresentaremos diversas abordagens para encontrar o padro
corretoparaoseuproblema:
I.Considerecomopadresdeprojetosolucionamproblemasdeprojeto:Ospadresde
projetoajudamaencontrarobjetosapropriados,determinarassuasgranularidades,
especificar interfaces e varias outras formas pelas quais padres de projeto
solucionamproblemasdeprojeto.
II.Examineasseesdeintenodecadapadro:Leiatodaaseodeintenodecada
padro para encontrar um ou mais padres que paream relevantes pra o seu
problema.
III.Estudecomoospadresseinterrelacionam:Oestudodessesrelacionamentospode
ajudaradirecionloparaopadro,ougrupodepadres,adequado.
IV.Estudepadresdefinalidadessemelhantes:Estudesobreassemelhanasediferenas
depadrescompropsitossimilares.
V.Examineumacausadereformulaodeprojeto:Vejaascausasdereformulao,
paraverseoseuproblemaenvolveumaoumaisdelas.Entoolheospadresquelhe
ajudamaevitaressascausas.
VI.Considereoquedeveriaservarivelnoseuprojeto:Estaabordagemoopostodese
focalizarnascausasdereformulao.Aoinvsdeconsideraroquepodeforaruma
mudanaemumprojeto,considereoquequersercapazdemudarsemreprojetar.

7.ComoUsarumPadrodeProjeto
Uma vez que voc tenha escolhido um padro de projeto, como voc o utiliza?
Apresentaremosaquiumaabordagempassoapassoparaaplicarumpadrodeprojeto
efetivamente:
I. Leiaopadroporinteiroumavez,paraobterumavisogeral.Presteatenoem
particularssees deaplicabilidade econsequncia, paraassegurarsedequeo
padrocorretoparaoseuproblema.
II.Volteeestudeasseesdeestrutura,participante,consequncias.Asseguresede
quecompreendeasclasseseobjetosnopadroecomoserelacionamentresi.
III.Olhe a seo exemplo de cdigo, para ver um exemplo concreto do padro
codificado.
IV.Escolhanomesparaosparticipantesdopadroquetenhamsentidonocontextoda
aplicao.Osnomesparaosparticipantesdospadresdeprojetoso,geralmente,
muitosabstratosparaapareceremdiretamentenumaaplicao.

V.Defina classes. Declare suas interfaces, estabelea os seus relacionamentos de


heranadedefinaasvariasdeinstnciaquerepresentamdadoserefernciaaobjetos.

7.ConsideraesFinais
Ospadresdeprojetotornammaisfcilreutilizaodeprojetosearquiteturasbem
sucedidas. Expressar tcnicas testadas e aprovadas as torna mais acessveis para os
desenvolvedores de novos sistemas. Os padres de projeto ajudam a escolher
alternativasdeprojetoquetornamumsistemareutilizveleaevitaralternativasque
comprometamareutilizao.
Os padres de projeto podem melhorar a documentao e a manuteno de
sistemasaofornecerumaespecificaoexplcitadeinteraesdeclasseseobjetoseo
seuobjetivosubjacente.Emsuma,ajudamumprojetistaaobtermaisrapidamenteum
projetoadequado.

Referncias
Gamma, Erich. Padres de projeto: solues reutilizveis de software orientado a
objetos/ErichGama,RichardHelm,RalphJohnsoneJohnVlissides;trad.LuizA.
MeirellesSalgado.PortoAlegre:Bookman,2000.
Deitel, Harvey M.Java como Programar, 8. Edio / Harvey M.Deitel & Paul J.
Deitel;traduoEdsonFurmankiewicz;revisotcnicaFabioLuizPicelliLucchini.
SoPaulo:PearsonPrenticeHall,2010.
Sommerville,Ian.EngenhariadeSoftware/IanSommerville;Traduo:IvanBosnice
KalinkaG.deO.Gonalves;revisotcnicaKechiHirama9.ed.SoPaulo:
PearsonPrenticeHall,2011.

Anda mungkin juga menyukai