Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni10 pagine

Design Patterns PDF

Questo documento discute diversi modelli di design Java: 1. Il modello Data Transfer Object (DTO) che riduce il traffico di rete tra client e server incapsulando i valori degli attributi in un oggetto piuttosto che in chiamate individuali. 2. Il modello Model-View-Controller (MVC) che separa i dati di un'applicazione, l'interfaccia utente e la logica in tre componenti. Questo migliora la manutenibilità del codice. 3. Il modello Business Delegate che funge da proxy per i componenti aziendali, nascondendo la complessità e consentendo modifiche senza modificare il codice del client. 4. Il modello Service Locator che memorizza nella cache i riferimenti ai componenti aziendali in un buffer locale, migliorando le prestazioni riducendo il traffico di rete rispetto a ciascun client che accede separatamente al registro. 5. Il modello Front Controller relativo a

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni10 pagine

Design Patterns PDF

Questo documento discute diversi modelli di design Java: 1. Il modello Data Transfer Object (DTO) che riduce il traffico di rete tra client e server incapsulando i valori degli attributi in un oggetto piuttosto che in chiamate individuali. 2. Il modello Model-View-Controller (MVC) che separa i dati di un'applicazione, l'interfaccia utente e la logica in tre componenti. Questo migliora la manutenibilità del codice. 3. Il modello Business Delegate che funge da proxy per i componenti aziendali, nascondendo la complessità e consentendo modifiche senza modificare il codice del client. 4. Il modello Service Locator che memorizza nella cache i riferimenti ai componenti aziendali in un buffer locale, migliorando le prestazioni riducendo il traffico di rete rispetto a ciascun client che accede separatamente al registro. 5. Il modello Front Controller relativo a

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

JAVA AVANZATO Con materiale SCWCD/ OCWCD Di Mr.

Durga

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038


345  040–64512786,8096969696,[Link]
JAVA AVANZATO Materiale SCWCD/ OCWCD Di Mr. Durga

ModeliJavaEE

1) DTO

2) MVC

Filtro Intercettante

4)Controllore Frontale

Delegato Aziendale

6) Localizzatore di Servizi

7)DAO

8)DAOFactory

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,


346  040–64512786,8096969696,9246212143|[Link]
ADV. JAVA Con Materiale SCWCD/ OCWCD Di Mr. Durga

Cos'è un Design Pattern?


Asoftwaredesignpatternisrepeatablesolutionforcommonlyoccuringsoftwareproblems,it
fornisce un processo standard per progettare applicazioni.

1) DTO (Design Pattern per il Trasferimento Dati)

etiu
birtsid inoizaci lpael ledotsetnoc lN
e
comunicare tramite rete.

Problema: Ogni chiamata tra client e server è una chiamata a metodo remoto se l'applicazione client chiama
metodigetteresetterindividualiperrecuperareeaggiornareivalori,quindiilnumerodichiamateremotaè
richiestitantiquantisonoilnumerodiattributieimpattaleprestazionidelsistema.

Sou
lzoine:
irolav i ittut eraluspacni repottegon
uaeCr
l'oggetto è chiamato DataTransfer Object.
Quando il client richiede dati dal server, i componenti lato server ottengono i valori dei dati e
constructTransfer objects by setting its data values, this object send to the client , client uses this
l'oggetto perinterrogare tutti i valori di dati richiesti quindi l'oggetto di trasferimento funge da proxy perle proprietà
ofremoteobject.

:inoizacim
lp
i eezneugeC
sno
peraItd
n
oagoiestrzn
viD
e.n
ritcrlT
atertO
d
coiraftucolnio
Rd iucealmn im
i oilcoupn
ilg(dp
iendenze)
m
aiosp
soeeterd
iociracarvos d
im
eb
op
lirern
ievm
ap
riosp
soh
ecènretp
tan
gisd
eld
eoigan
avtep
lain
cip
rlI
migliorare le prestazioni del sistema.
noim
zraofni el ehc èD
T
Ongised idnrettap ledenoizatm
i l elapicnirpL
a
latoclient.

:sdW
ro-yK
e
ertd
coiraftR
d
liuce
Mgiolrarealresponsabtàil
ilvleil iart idaterireT
fars
n
Iorfm
grusp
olan
p
zio
2) Pattern di Progettazione MVC (ModelViewController)

:txeC
tno
Nelsitemachecon
ivogleeln
iterfacceutente,normam
l entesivercfianoelseguentistu
iazoin.i
.u
en
itdiagldiem
atersS
ad
cetivaelI
Aggoirnaredliatabaseerestiuriegsiltesdiaatiu
'ltenten
iunmomentosuccesviocs,ionodviersi
modiincuiidatipossonoessereaccettatiediversidatipossonoesserepresentatiall'utente.

Problema:
Selsitemadsitrb
iusiceunsn
igoolcomponentechen
iteragsiceconunutenteemanetineld
iatabaseaolraun
la necessità di supportare un nuovo tipo di visualizzazione o vista richiederà una riprogettazione dell'intero componente.

DURGASOFT, # 202, 2ndFloor, HUDA Maitrivanam,Ameerpet, Hyderabad - 500038,


347  040–64512786,8096969696,[Link]
JAVA AVANZATO Materiale SCWCD/ OCWCD Di Mr. Durga

Sou
lzoine:
eponente
dn
eoin
zm
en
u
talld
a itd
a ideoizache
en n
tesep aco-
ral erarpes ln
eetsin
socn
eoiu
zlosL
a
ordina le prime 2 componenti e queste 3 componenti sono chiamate Modello, Vista, Controllore.
È responsabile della conservazione dei dati o dello stato dell'applicazione; gestisce anche archiviazione e recupero.
di dati daDatabase.

:atsV
i
P
en
u
m
rte.n'an
lith
cen
ftu
alt'd
m
ad
ilzoaitliu
osd
alevoinac,en
ip
zd
oC
segtrain
leoint
interagire con il Sistema.

:erollorC
tno
Gesticetutoolspetacool,n
iziailimodeolelavsitaeasocaialvsitaconladp
iendenzadelmodeol.
requisiti dell'applicazione, Itmay inizia molteplici visualizzazioni per lo stesso modello.

:snoitaO
tm
R
L
isecneu
qeC
sno
m
.iran
om
cetp
ioneitrtaligleu
n
arzlnfin
aezsnd
q
iuoavrl d
leoneip
azersecsF
n
ori
Permigliorarelamanutenzionedelcodice.
Segue un accoppiamento lâche, alta coesione.
Itpromotesre-usabtilyofthemodelcomponentsforthesamemodelwecanprovd
iemutlp
iel
visualizzazioni.

è[Link]'lldlevaocm
isàetp
ocm
liasuem
h
cp
leaèn
etn
retpagtnidsedleonem
aiztiilepalnicL
pira
non adatto a piccole applicazioni.

:sdW
ro-yK
e
Separaotinconcerns.
Fornire servizi a diversi clienti, clienti web, clienti remoti.
Visualizzazioni multiple come HTML, XML, JSP, XHTML ecc.

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038


348  040–64512786,8096969696,9246212143|[Link]
JAVA AVANZATO Con materiale SCWCD/ OCWCD Di Mr. Durga

3) Modello di design Business Delegate

Problema:
etn
m
aetteridonah tnei lc inoizaci lpa L
e
metodideicomponentiaziendali,seidettaglidelcomponenteaziendalecambianoeperchiamareilbusiness
metodidiComponentiAziendali,seidettaglidelcomponenteaziendalecambianoocomunicazione
I dettagli sono cambiati, dobbiamo disturbare il codice dell'applicazione client.
Sou
lzoine:
Work withBusinessDelegate class ,This is java class that separate the code of interacting with
com
ienp
aed
zisoan
luen
iftor,Ip
ch
ven
ars2n
[Link]
,iticlC
on
cap
ziom
epd
laen
lp
ad
zioan
len
it
I dettagli sono modificati, dobbiamo solo modificare la classe dei delegati aziendali. Non c'è bisogno di modificare tutto.
codicedell'[Link]òessereutilizzatadapiùapplicazioniclient
avere riutilizzabilità per interagire con i Componenti Aziendali.

Bu
niseDeglaeF
teau :tres
BL
aesn
cu
laD
sieufen
gd
ealp
gtaem
roixyp
em
lenan
traem
d
cfiteoeo.t
Inziaiacomunciareconsliervzioiremoto.
D
codm
aiteglun
caoizn
h
deaignledrcloezn
i.i
R
cd
ocmeh
[Link]
n
rloen
tlit
utb.s)avice(ervsib
nsh
u
eoirw
tsfoeq
rtah
u
rd
tesT
eartnls
.ercom
lcon
rltaidpeloncisen
utiitesrep asotsriaT lraduci

B
P
dnp
reu
n
ilciseDeglae:t
.àtism
ocseaplllden
oed
iuziralulsotabsaetageD
slesnB
ius
.eccafretni el laacifid
C
o
. gni lpuoc esooL
Preocupesap
od
zn
iariaozn
ie.

Minimizza l'impatto del livello web quando si verificano cambiamenti nel livello business.
.ivleilliovleilR
ldcoaiu
lm
rieatàtp
eisl
à.tom
cisaep
laum
h
ceoinetiazciapl'laloatrtsunA
oungi

Applicazionewebdistribuita:

Leapplicazionidistribuitesonotrasparentirispettoalaposizioneperchésiavvalgonodelsupportodisoftwarediregistrazione.
La trasparenza della posizione significa che l'applicazione client può riconoscere dinamicamente le classi di posizione di
Il software di registrazione delle applicazioni server può gestire oggetti e riferimenti agli oggetti con nome lias (o) soprannome
nome.
Leappcilazoiniwebceilntnondsitrb
iutieparalnosemprediJNDIregsitryperotenereBusn
iesComponent
riferimento e utilizza quel riferimento a BusinessComponent per chiamare il metodo Business di Business
oggetto/componente.

DURGASOFT, # 202, 2ndFloor, HUDA Maitrivanam,Ameerpet, Hyderabad - 500038,


349  040–64512786,8096969696,[Link]
JAVA AVANZATO Con materiale SCWCD/ OCWCD Di Mr. Durga

4) Pattern di Progettazione Service Locator

Problema:
Ifmutlp
ielappcilatoinsofaprojectwantston
iteractwtihsamebusn
iessComponentofdsitrb
iuted
l'applicazione allora deve interagire con il registro JNDI perottenere lo stesso riferimento all'oggetto Business, nel
ogni applicazione cliente dovrebbe interagire con il software di registrazione separatamente per ottenere lo stesso business
riferimento dell'oggetto che influisce sulle prestazioni a causa del traffico di rete s/w registro e client
applicazioni. Qui tutte e 3 le applicazioni client stanno interagendo con il software del registro sulla rete ottenendo
riferimento all'oggetto business attraverso n/ w.

Sou
lzoine:
DevoelpServceiLocaotacrh
lsavniogaldbuoem
tfraniatniBunsieosberjceftrencgeah
ten
rig
dalla registrazione e fornitura di riferimenti degli oggetti aziendali alle applicazioni client, questo riduce il traffico di rete
tra applicazioni client di uno stesso progetto e registrazione s/ w.
Rispettoaldiagramma,l'applicazioneclientutilizzaServiceLocatorperottenereilriferimentoall'oggettoBusiness.
dalla registrazione JNDI e mantiene quel riferimento all'oggetto aziendale nel buffer locale del ServiceLocator mentre
nelle rimanenti applicazioni client recupera direttamente il riferimento dell'oggetto business dal buffer locale del servizio
a f r eP . ro t acoL l I
classe java. Il buffer in ServiceLocator non è altro che una struttura dati del framework di raccolta come
Hah
sMacp
am
op
n
ld
àaticemozm
rau
eifren
iog'B
eon
ltaoelm
tu
n
isoiesparlaennom
n
ooem
[Link]

ServiceLocatorFeatures :
Ottieni oggetto InitialContext.
Esegui registryLookUp.
coam
d
leld
aeioctgeu
n
.zliG
n
lcoasn
eziiets
zz i rm
om
e inoi zat serp e l eraroi lgm
i òuP
Funziona con una varietà di software di registrazione come JNDI, RMI, UDDI, COS.

ServiceLocator Principles :
d
T
cob
h
n
m
d
[Link]
cL
xip
ervlocart
Separaozin
p
d
erleolcupaozin.i
Minimizza l'impatto sul livello web quando cambia la posizione del componente remoto.
Reducoeu
snb
p
igw
eltehtneT
[Link]

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,


350  040–64512786,8096969696,9246212143|[Link]
JAVA AVANZATO Con materiale SCWCD/ OCWCD [Link]

5) Pattern di Design Front Controller

:txeC
tno
en
rad
iroceerallorn
otcevdren
oT
itan
teseP
rld
eetseh
icirelld
en
oeitsegm
d
ism
on
aicelI
l'utente attraverso più richieste tale meccanismo di controllo può essere gestito sia in modo centralizzato che
in modo decentralizzato.

Problema:
Quando un utente accede a un componente di visualizzazione direttamente senza passare attraverso un meccanismo centralizzato ciascuno

view is required to provide it's own system services which may result duplicate code.

Sou
lzoine:
Use FrontController design pattern to gather common redundent request processing code into a
componente singolo, questo consente all'applicazione di essere più coesa, meno complessa.

Se il servlet agisce come FrontController, allora viene chiamato FrontControllerServlet.


SeJspagiscecomeFrontControlleralloraèchiamatoFrontControllerJsp.
FronC
tF
oern
S
lrote,n
lrvC
ltoern
Jlrw
d
p
ostlevlzoexb
ain
cfm
[Link]
lu
d
ieofltrailt
URL di corrispondenza diretta (o) modello di corrispondenza URL di estensione.

n
>
retp
ta-lurd
<
o/.*n
>
retp
ta-<
lu
r
n
>
retp
ta-lu
r<
*/ /tset /b
ac /ajar /n >
retp
ta-<
lu
r

:inoizacim
lp
i eezneugeC
sno
izarobale' l led otazzi lartnec rel lortnC
o
Mgioilraalmanutenb
itilà
Promuove il riutilizzo

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,


351  040–64512786,8096969696,[Link]
ADV. JAVA Con Materiale SCWCD/ OCWCD Di Mr. Durga

6) Filtro di Intercettazione Modello di progettazione

:txeC
tno
reva òup etnei lc led atseihcir aL
loro.
com
H
ielp
oT
ù
crp
talF
m
itS
T
eM
atP es,[Link] em
,cvetrsridevsalI
[Link] caeriau
enem
ttszaerd u
oirevsatlI
.n
oiizab
role iroiretu
lerd
eh
icirm
d
iip
ran
m
oirn
ifzaim
eiru
evooeu
rn
egigaoirassecn

Problema:
pq
-erou
m
tsen
d
p
oagrb
i,azp
tn
elom
aristdercvosap
en
toisp
irlaleatseh
cL
ira
l'elaborazione deve essere eseguita senza influenzare il resto del sistema, ovvero deve essere plug-in.

Sou
lzoine:
Utilizzaifiltriperelaborareinanticipolarichiestaeperelaboraredopolarisposta.
iva irtl if iedenoim
zoiroenoizarugifnocL a
:inoizacim
IlpoezneugeC
sno
LI'ntercepn
tigFtelirb
siasasucoesoinea,ccoppaimentoalscoa,umentandocliontrooldcihairavtio.
DeaclraviteConcrtolnsen
m
id
etipem
l enatarfm
eslu
cibrtilaieftsm
nietporaneache
basipermanenti.
DaevcrlaeiC
tocnroestq
lescn
h
u
len
tein
vd
ozeciaom
zn
isalfecoieangetogrin
.aib
li

:sdW
ro-yK
e
enoizarobale-erp al rep elartnec ot tegO
g
[Link]
cirognidoin
A aceizin
eut
[Link]
aizoirut
.atsopsiralledenoisC sm oerp
.atp
sosiralld
eaifargottC ir
W
(ap
r)tp
eosireatseh
ciirdim
ornifiazeld
leacM
ifodi

IcliclodviitadeflitropuòesseregestiodaW
l eb-Container.

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,


352  040–64512786,8096969696,[Link]
JAVA AVANZATO Con materiale SCWCD/ OCWCD Di Mr. Durga

7) Modeol di Progeto DAO (DataAccess Object)

Problema:
Inmvc2andotherprojects,fipersitencelogcisimxiedwtihotherlogcioftheappcilatoinsaspecaiyl
(logica di business O logica di persistenza) la logica di persistenza non diventerà flessibile da modificare, il che significa
Le modifiche apportate alla logica di persistenza possono disturbare altre logiche dell'applicazione.

Sou
lzoine:
Lavora con DAO, la classe Java che separa la logica di persistenza da altre logiche dell'applicazione per
rendi la logica di persistenza una logica flessibile per modificare questo tipo di classi che non sono altro che classi DAO.

LaclasseDAOcontieneleseguentilogiche.
er i l ibat s rep ac igoL
ra i csa l i r rep ac i goL
e r i uge s e rep ac i goL
Conteineanchecodciedigestoinedeeltransazoiniecc.

Nota:ÈsempreconsigliatoscrivereunaclasseDAOseparataperognicomponenteaziendale.

n
oeizattegop
rd
ioM
lld
oe oneiazcoA
ilplveLi
DTO Bu
niseT
eri
FronC
ton
erlotl PresentationTier
FrtloidInietrceatzoine PresentationTier
DeglaotAen
zideal oA
n
elL
d
vizleai
ServiceLocator Bu
niseT
eri
MVC PresentationTier &BusinessTier
DAO Bu
niseT
eri

DURGASOFT, n. 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038,


353  040–64512786,8096969696,[Link]
JAVA AVANZATO Materiale SCWCD/ OCWCD Di Mr. Durga

DURGASOFT, # 202, 2ndPiano, HUDA Maitrivanam, Ameerpet, Hyderabad - 500038


354  040–64512786,8096969696,[Link]

Potrebbero piacerti anche