Lezione 03 - Interface

552 views

Published on

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

Lezione 03 - Interface

  1. 1. Ingegneria del Software
  2. 2. Introduzione al pattern…
  3. 3. 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? Come garantire la coerenza nelle firme dei metodi? Es. String getAddress() Es. String getAddress() Ingegneria del Software - A.A. 2003/2004
  4. 4. Problema introduttivo (2/4) Ingegneria del Software - A.A. 2003/2004
  5. 5. Problema introduttivo (3/4) AddressIF ReceivingLocation Ingegneria del Software - A.A. 2003/2004
  6. 6. Problema introduttivo (4/4) Ingegneria del Software - A.A. 2003/2004
  7. 7. Presentazione del pattern Interface
  8. 8. 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
  9. 9. Il pattern Interface (2/4) • Solution - Gli “attori” del pattern Interface sono: – Client – IndirectionIF Da Context… – Service … a Solution Ingegneria del Software - A.A. 2003/2004
  10. 10. Il pattern Interface (3/4) • Consequences - Permette la separazione tra la definizione dei metodi e la loro implementazione - Può rendere il programma più difficile da capire Ingegneria del Software - A.A. 2003/2004
  11. 11. 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
  12. 12. Domande? Ingegneria del Software - A.A. 2003/2004

×