Você está na página 1de 6

26/05/2015

Oqueumframework?

Frameworks
Oqueumframework?
Qualoproblema?
Programardifcil
Ondeestamaiordificuldade?
"Interfacedesignandfunctionalfactoring
constitutethekeyintelectualcontentof
softwareandisfarmoredifficulttocreateor
recreatethancode"(PeterDeutsch)
Masnossosprogramadoressomortais
"Itshouldn'ttakeagoodprogrammertobuild
agoodprogram"
Soluo:Temosquefornecerformasdereusoque
voalmdecdigo:reusodeanlise,design,
cdigo.
Frameworkorientadoaobjeto

OqueumFramework?
Umframeworkcapturaafuncionalidadecomuma
vriasaplicaes
Asaplicaesdevemteralgorazoavelmentegrande
emcomum:pertencemaummesmodomniode
problema

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

1/6

26/05/2015

Oqueumframework?

Hvriasdefiniesdeframeworks(veraqui)
Adefinioqueusamosfocaquatrocaractersticas
principaisdeumframework(OrientadoaObjeto):
"Umframeworkprovumasoluoparauma
famliadeproblemassemelhantes,...
Usandoumconjuntodeclasseseinterfaces
quemostracomodecomporafamliade
problemas,...
Ecomoobjetosdessasclassescolaboram
paracumprirsuasresponsabilidades,...
Oconjuntodeclassesdeveserflexvele
extensvelparapermitiraconstruode
vriasaplicaescompoucoesforo,
especificandoapenasasparticularidadesde
cadaaplicao"
Observequeumframeworkumaaplicaoquase
completa,mascompedaosfaltando
Aoreceberumframework,seutrabalho
consisteemproverospedaosqueso
especficosparasuaaplicao
AstcnicasbsicassoTemplateMethode
Composio

DiferenasentreumFrameworkeuma
BibliotecadeClassesOO
Numabibliotecadeclasses,cadaclassenicae
independentedasoutras
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

2/6

26/05/2015

Oqueumframework?

Numframework,as
dependncias/colaboraesestoembutidas
(wiredininterconnections)
Combiblioteca,asaplicaescriamas
colaboraes

Vseportantoqueumframeworkimpeum
modelodecolaborao(oresultadodaanlisee
design)aoqualvocdeveseadaptar
Jqueacomunicaoentreobjetosjest
definida,oprojetistadeaplicaesno
precisasaberquandochamarcadamtodo:
oframeworkquefazisso
Nosepodeembutirconhecimentododomnio
(anlise+design)numabibliotecadeclasses
OframeworkusadodeacordocomoHollywood
Principle("Don'tcallus,we'llcallyou")
oframeworkquechamaocdigoda
aplicao(quetratadasparticularidades
dessaaplicao)
Framework=Upsidedownlibrary

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

3/6

26/05/2015

Oqueumframework?

ExemplodoHollywoodPrinciple
ModelodeeventosemJava/AWT
AWTumframework
Nocdigoabaixo,mouseClicked()e
mousePressed()sochamadospelo
framework(AWT)
publicclassMeuMouseListenerimplementsMouseListener{
publicvoidmouseClicked(MouseEventevent){
...
}
publicvoidmousePressed(MouseEventevent){
...
}
...
}
...
MeuMouseListenermouseListener=newMeuMouseListener()
JButtonmeuBoto=newJButton("cliqueaqui")
//Oseguintemtodoestabeleceainteraoentreoobjeto
//meuBotoeoobjetomouseListener
meuBoto.addMouseListener(mouseListener)

Adiferenaentreumframeworkeumabiblioteca
declassesnobinria

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

4/6

26/05/2015

Oqueumframework?

DiferenasentreFrameworkseDesign
Patterns
Aparentemente,osdoisconsistemdeclasses,
interfacesecolaboraesprontas
Asdiferenasso:
Designpatternssomaisabstratosdoque
frameworks
Umframeworkincluicdigo,umdesign
patternno(sumexemplodousode
umpattern)
Devidopresenadecdigo,um
frameworkpodeserestudadoanvelde
cdigo,executado,ereusado
diretamente
Designpatternssoelementosarquiteturais
menoresdoqueframeworks
Umframeworktpicocontmvrios
designpatternsmasocontrrionunca
ocorre
Exemplo:Designpatternsso
frequentementeusadospara
documentarframeworks
Designpatternssomenosespecializadosdo
queframeworks
Frameworkssempretmumdomnio
deaplicaoparticularenquantodesign
patternsnoditamumaarquiteturade
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

5/6

26/05/2015

Oqueumframework?

aplicaoparticular

CaractersticasBsicasdeFrameworks
Umframeworkdeveserreusvel
opropsitofinal!
Paraserreusvel,deveprimeiroserusvel
Bemdocumentado
Fcildeusar
Deveserextensvel
Oframeworkcontmfuncionalidadeabstrata
(semimplementao)quedeveser
completada
Deveserdeusoseguro
Odesenvolvedordeaplicaesnopode
destruiroframework
Devesereficiente
Devidoaseuusoemmuitassituaes,
algumasdasquaispoderonecessitarde
eficincia
Devesercompleto
Paraenderearodomniodoproblema
pretendido
frame1programaprxima

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

6/6