Download - Lezione 03 - Interface
Ingegneria del Software
Introduzione al pattern…
Ingegneria del Software - A.A. 2003/2004
Problema introduttivo (1/4)
• Durante la progettazione di un software amministrativo, si prevede la presenza di una classe AddressPanel che riesce a visualizzare correttamente gli indirizzi di tutte le classi che contengono un indirizzo.– Clienti– Fornitori– Commercialista– Avvocato– Impiegati– …
Come garantire la coerenza nelle firme dei metodi?Es. String getAddress()
Come garantire la coerenza nelle firme dei metodi?Es. String getAddress()
Ingegneria del Software - A.A. 2003/2004
Problema introduttivo (2/4)
Ingegneria del Software - A.A. 2003/2004
Problema introduttivo (3/4)
AddressIF
ReceivingLocation
Ingegneria del Software - A.A. 2003/2004
Problema introduttivo (4/4)
Presentazione del pattern Interface
Ingegneria del Software - A.A. 2003/2004
Il pattern Interface (1/4)
• Nome Interface [GoF95]
• Synopsis Rende una classe che usa dati e dai servizi offerti da istanze di altre classi indipendente da queste ultime. Ciò è possibile perché la classe in questione accede alle istanze attraverso un interfaccia.
• Context Cfr. esempio introduttivo
• Forces Quando si è costretti a richiedere a una o più classi l’implementazione di uno o più metodi
Ingegneria del Software - A.A. 2003/2004
Il pattern Interface (2/4)
Da Context…
… a Solution
• Solution - Gli “attori” delpattern Interface sono:
– Client
– IndirectionIF
– Service
Ingegneria del Software - A.A. 2003/2004
Il pattern Interface (3/4)
• Consequences
- Permette la separazione tra la definizione dei metodie la loro implementazione
- Può rendere il programma più difficile da capire
Ingegneria del Software - A.A. 2003/2004
Il pattern Interface (4/4)
• Implementation Cfr. esempio introduttivo
• Java API usage Esercizio:Riconoscere il pattern Interface in java.io.FilenameFilter
• Code example Cfr. esempio introduttivo
• Related Patterns Spesso usato insieme al Delegation Pattern
Ingegneria del Software - A.A. 2003/2004
Domande?