Ingegneria del Software
Introduzione al pattern…
Esempio introduttivo (1/2)


• Si consideri la seguente organizzazione delle classi utili per la
  creazione e l’invio di ...
Esempio introduttivo (2/2)




    Ingegneria del Software - A.A. 2003/2004
Presentazione del pattern
         Façade
Il pattern Façade (1/5)


•   Nome       Façade [GoF95]

•   Synopsis   Il pattern Façade semplifica l’utilizzo di un
    ...
Il pattern Façade (2/5)


•   Forces   - Un client è costretto a conoscere la struttura e
               le relazioni di u...
Il pattern Façade (3/5)

Solution




             Ingegneria del Software - A.A. 2003/2004
Il pattern Façade (4/5)



•   Consequences

       - Il client non è tenuto a conoscere le classi che si
         trovano...
Il pattern Façade (5/5)


•   Implementation
       - Nel caso in cui si voglia tenere il client all’oscuro del
         f...
Domande?




Ingegneria del Software - A.A. 2003/2004
Upcoming SlideShare
Loading in …5
×

Lezione 06 - Façade

1,555 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,555
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lezione 06 - Façade

  1. 1. Ingegneria del Software
  2. 2. Introduzione al pattern…
  3. 3. Esempio introduttivo (1/2) • Si consideri la seguente organizzazione delle classi utili per la creazione e l’invio di messaggi di posta elettronica: Il client deve conoscere tutte altre classi, le loro Il client deve conoscere tutte altre classi, le loro relazioni e l’ordine con il quale istanziarle. relazioni e l’ordine con il quale istanziarle. Ingegneria del Software - A.A. 2003/2004
  4. 4. Esempio introduttivo (2/2) Ingegneria del Software - A.A. 2003/2004
  5. 5. Presentazione del pattern Façade
  6. 6. Il pattern Façade (1/5) • Nome Façade [GoF95] • Synopsis Il pattern Façade semplifica l’utilizzo di un insieme di oggetti relazionati tra loro, introducendo un nuovo oggetto che funge da unica “facciata” per comunicare con i primi. GoF sintetizza il pattern Façade in questo modo: “Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use” • Context Cfr. esempio introduttivo Ingegneria del Software - A.A. 2003/2004
  7. 7. Il pattern Façade (2/5) • Forces - Un client è costretto a conoscere la struttura e le relazioni di un numero significativo di classi. Questo aumenta la complessità del client. - Si introduce una Façade tra le classi ed i client spostando la complessità all’interno della Façade. - Non è necessario che la Façade rappresenti una barriera impenetrabile per i client. Al contrario, può essere conveniente che la stessa Façade preveda la restituzione dei reference degli oggetti per permetterne un accesso diretto ai client. Ingegneria del Software - A.A. 2003/2004
  8. 8. Il pattern Façade (3/5) Solution Ingegneria del Software - A.A. 2003/2004
  9. 9. Il pattern Façade (4/5) • Consequences - Il client non è tenuto a conoscere le classi che si trovano dietro la Façade - Si disaccoppia il codice del client dagli oggetti che si trovano dietro la Façade, facilitandone la manutenzione - Il client hanno comunque la possibilità di accedere direttamente agli oggetti dietro la Façade Ingegneria del Software - A.A. 2003/2004
  10. 10. Il pattern Façade (5/5) • Implementation - Nel caso in cui si voglia tenere il client all’oscuro del funzionamento di un sottosistema , le classi che rappresentano il sottosistema possono essere implementate come inner class della Façade. • Java API usage La classe java.net.URL è un esempio di Façade. Esercizio: individuare quali classi sono dietro la Façade. • Code example Cfr. sorgenti che implementano l’esempio introduttivo. • Related Patterns Interface, Law of Demeter. Ingegneria del Software - A.A. 2003/2004
  11. 11. Domande? Ingegneria del Software - A.A. 2003/2004

×