SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Ingegneria del Software
Introduzione al pattern…
Problema introduttivo (1/3)




Cosa accade alle persone che “giocano più ruoli”?
Cosa accade alle persone che “giocano più ruoli”?



            Ingegneria del Software - A.A. 2003/2004
Problema introduttivo (2/3)




L’ereditarietà non risolve il problema!
L’ereditarietà non risolve il problema!


       Ingegneria del Software - A.A. 2003/2004
Pattern
Delegation
Il pattern Delegation (1/8)


•   Nome       Delegation (When not to use Inheritance)
               [Grand98]

•   Synopsis   La delega è un modo per “estendere” e riusare le
               funzionalità di una classe senza ricorrere
               all’ereditarietà. La nuova classe simula
               l’ereditarietà utilizzando un’istanza della classe
               originale per fornire le funzionalità originali. A
               queste ne aggiunge di nuove.




                     Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (2/8)



• Context   - Delegation è più generale dell’ereditarietà

            - L’ereditarietà è utile per relazioni del tipo “is-a-
              kind-of” perchè sono intrinsecamente statiche

            - In relazioni tra classi più dinamiche, tipo “is-a-
              role-played-by”, l’ereditarietà crea problemi

            - Esempio:
                  Sistema per la prenotazione di biglietti
                  aerei che prevede passeggeri, personale di
                  linea, agente di vendita biglietti aerei, ecc.



                  Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (3/8)




    Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (4/8)


•   Forces
    – L’ereditarietà è una relazione statica che non cambia nel
      tempo
    – Se una classe tenta di nascondere un metodo o una
      variabile ereditata da una superclasse, allora quella
      superclasse non dovrebbe essere estesa
    – Dichiarare un classe come sottoclasse di una classe utility
      può essere rischioso
        • Estendendo una classe come Vector, quest’ultima potrebbe
          cambiare nel tempo perdendo la compatibilità
        • I client potrebbero presupporre la superclasse
          (es. cast per passaggio di parametri)
        • I client potrebbero richiamare i metodi pubblici della
          superclasse



                      Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (5/8)




                                    • Solution - Gli “attori” del
                                      pattern Delegation sono:
Da Context…
                                          – Delegator
                                          – Delegate
         … a Solution




          Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (6/8)


•   Consequences
                - Vantaggi
                         -Aggira i problemi dell’ereditarietà
                         -Facile cambiare il comportamento di un
                          oggetto a run-time
                - Svantaggi
                         - Meno strutturata rispetto all’ereditarietà:
                           relazioni tra le classi meno ovvie
•   Implementation
                - Implementazione banale
•   Java API usage
                - Le API Java presentano molti esempi di delegation
                  pattern.
                - Alla base del modello ad eventi Java.



                       Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (7/8)

•   Code example




     FlightSegment
                                     FlightSegment non estende la
                                     classe LuggageCompartment!




                     Ingegneria del Software - A.A. 2003/2004
Il pattern Delegation (8/8)



   LuggageCompartment           LuggageCompartment
                                non estende Vector!




• Related Patterns        - Molti pattern usano il principio di delega
                            Es. Decorator, Proxy, Observer.


                        Ingegneria del Software - A.A. 2003/2004
Domande?




Ingegneria del Software - A.A. 2003/2004

Más contenido relacionado

Destacado

Ppt Newtons Second Law
Ppt Newtons Second LawPpt Newtons Second Law
Ppt Newtons Second Lawffiala
 
Newton's second law of motion
Newton's second law of motionNewton's second law of motion
Newton's second law of motionAncy Simon
 
Forces & Changes in Motion
Forces & Changes in MotionForces & Changes in Motion
Forces & Changes in MotionStephen Taylor
 
Chapter 6 Work Energy Power
Chapter 6 Work Energy PowerChapter 6 Work Energy Power
Chapter 6 Work Energy Powermoths
 
6161103 3.4 three dimensional force systems
6161103 3.4 three dimensional force systems6161103 3.4 three dimensional force systems
6161103 3.4 three dimensional force systemsetcenterrbru
 
Newtons Laws Of Motion
Newtons Laws Of MotionNewtons Laws Of Motion
Newtons Laws Of Motionwilsone
 
Work and Energy
Work and EnergyWork and Energy
Work and Energymeenng
 
Work, energy & power physics
Work, energy & power physics Work, energy & power physics
Work, energy & power physics sashrilisdi
 
Newton’s Laws of Motion with Real Life Examples
Newton’s Laws of Motion with Real Life ExamplesNewton’s Laws of Motion with Real Life Examples
Newton’s Laws of Motion with Real Life Examplesicheema
 
Work and energy physics 9 class
Work and energy physics 9 classWork and energy physics 9 class
Work and energy physics 9 classFC Barcelona
 
Newton's 3 laws of Motion
Newton's 3 laws of MotionNewton's 3 laws of Motion
Newton's 3 laws of Motionkoniasunset
 

Destacado (20)

Work, energy and power
Work, energy and powerWork, energy and power
Work, energy and power
 
Ppt Newtons Second Law
Ppt Newtons Second LawPpt Newtons Second Law
Ppt Newtons Second Law
 
Newton's laws of motion
Newton's laws of motionNewton's laws of motion
Newton's laws of motion
 
Newton's second law of motion
Newton's second law of motionNewton's second law of motion
Newton's second law of motion
 
Forces & Changes in Motion
Forces & Changes in MotionForces & Changes in Motion
Forces & Changes in Motion
 
Physics and Matter
Physics and Matter Physics and Matter
Physics and Matter
 
Chapter 6 Work Energy Power
Chapter 6 Work Energy PowerChapter 6 Work Energy Power
Chapter 6 Work Energy Power
 
Physics Work and Energy
Physics Work and EnergyPhysics Work and Energy
Physics Work and Energy
 
6161103 3.4 three dimensional force systems
6161103 3.4 three dimensional force systems6161103 3.4 three dimensional force systems
6161103 3.4 three dimensional force systems
 
Newton's Laws of Motion
Newton's Laws of MotionNewton's Laws of Motion
Newton's Laws of Motion
 
Newtons Laws Of Motion
Newtons Laws Of MotionNewtons Laws Of Motion
Newtons Laws Of Motion
 
Work and Energy
Work and EnergyWork and Energy
Work and Energy
 
Work, energy & power physics
Work, energy & power physics Work, energy & power physics
Work, energy & power physics
 
Energy, Work & Power
Energy, Work & PowerEnergy, Work & Power
Energy, Work & Power
 
Newton’s Laws of Motion with Real Life Examples
Newton’s Laws of Motion with Real Life ExamplesNewton’s Laws of Motion with Real Life Examples
Newton’s Laws of Motion with Real Life Examples
 
Work, energy and power ppt
Work, energy and power pptWork, energy and power ppt
Work, energy and power ppt
 
Work and energy physics 9 class
Work and energy physics 9 classWork and energy physics 9 class
Work and energy physics 9 class
 
Psychology and physics
Psychology and physicsPsychology and physics
Psychology and physics
 
Newton's 3 laws of Motion
Newton's 3 laws of MotionNewton's 3 laws of Motion
Newton's 3 laws of Motion
 
newton's laws of motion
newton's laws of motionnewton's laws of motion
newton's laws of motion
 

Similar a Lezione 02 - Delegation

Lezione 11 - Visitor
Lezione 11 - VisitorLezione 11 - Visitor
Lezione 11 - VisitorMarco Bianchi
 
Lezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsLezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsMarco Bianchi
 
Lezione 01 - Singleton
Lezione 01 - SingletonLezione 01 - Singleton
Lezione 01 - SingletonMarco Bianchi
 
Lezione 04 - Factory method
Lezione 04 - Factory methodLezione 04 - Factory method
Lezione 04 - Factory methodMarco Bianchi
 
Lezione 12 - Observer
Lezione 12 - ObserverLezione 12 - Observer
Lezione 12 - ObserverMarco Bianchi
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingVittoriano Muttillo
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseAlberto Lagna
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented ProgrammingAndrea Bozzoni
 
Corso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignCorso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignK-Tech Formazione
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1Fabio Armani
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScriptSinergia Totale
 
Lezione 08 - Iterator
Lezione 08 - IteratorLezione 08 - Iterator
Lezione 08 - IteratorMarco Bianchi
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Modulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E AopModulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E Aopjdksrl
 
Webbit 2004: Aspectj
Webbit 2004: AspectjWebbit 2004: Aspectj
Webbit 2004: AspectjMatteo Baccan
 
Lezione 09 - Abstract Factory
Lezione 09 - Abstract FactoryLezione 09 - Abstract Factory
Lezione 09 - Abstract FactoryMarco Bianchi
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication ProtocolPaolo Maresca
 

Similar a Lezione 02 - Delegation (20)

Lezione 11 - Visitor
Lezione 11 - VisitorLezione 11 - Visitor
Lezione 11 - Visitor
 
Lezione 11 - Bridge
Lezione 11 - BridgeLezione 11 - Bridge
Lezione 11 - Bridge
 
Lezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsLezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design Patterns
 
Lezione 01 - Singleton
Lezione 01 - SingletonLezione 01 - Singleton
Lezione 01 - Singleton
 
Lezione 04 - Factory method
Lezione 04 - Factory methodLezione 04 - Factory method
Lezione 04 - Factory method
 
Lezione 12 - Observer
Lezione 12 - ObserverLezione 12 - Observer
Lezione 12 - Observer
 
Progettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time loggingProgettazione e realizzazione di un sistema software per il time logging
Progettazione e realizzazione di un sistema software per il time logging
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Corso Object Oriented Analysis and Design
Corso Object Oriented Analysis and DesignCorso Object Oriented Analysis and Design
Corso Object Oriented Analysis and Design
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScript
 
Lezione 08 - Iterator
Lezione 08 - IteratorLezione 08 - Iterator
Lezione 08 - Iterator
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Modulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E AopModulo 6 Spring Framework Core E Aop
Modulo 6 Spring Framework Core E Aop
 
Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014
 
Webbit 2004: Aspectj
Webbit 2004: AspectjWebbit 2004: Aspectj
Webbit 2004: Aspectj
 
Lezione 09 - Abstract Factory
Lezione 09 - Abstract FactoryLezione 09 - Abstract Factory
Lezione 09 - Abstract Factory
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication Protocol
 

Último

magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxpalestiniaurora
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxteccarellilorenzo
 
Gli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda presGli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda prespalestiniaurora
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxteccarellilorenzo
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...Nguyen Thanh Tu Collection
 
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxPancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxpalestiniaurora
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxpalestiniaurora
 
PalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxPalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxpalestiniaurora
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024IISGiovanniVallePado
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereMarco Chizzali
 
Piccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxPiccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxpalestiniaurora
 
presentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptxpresentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptxmichelacaporale12345
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxpalestiniaurora
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxsasaselvatico
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfteccarellilorenzo
 
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxPalestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxpalestiniaurora
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxteccarellilorenzo
 
Pancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxPancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxpalestiniaurora
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointpalestiniaurora
 
a scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPa scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPDamiano Orru
 

Último (20)

magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptx
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
Gli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda presGli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda pres
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxPancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docx
 
PalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxPalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docx
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
Piccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxPiccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docx
 
presentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptxpresentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptx
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docx
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxPalestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
Pancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxPancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docx
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpoint
 
a scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPa scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAP
 

Lezione 02 - Delegation

  • 3. Problema introduttivo (1/3) Cosa accade alle persone che “giocano più ruoli”? Cosa accade alle persone che “giocano più ruoli”? Ingegneria del Software - A.A. 2003/2004
  • 4. Problema introduttivo (2/3) L’ereditarietà non risolve il problema! L’ereditarietà non risolve il problema! Ingegneria del Software - A.A. 2003/2004
  • 6. Il pattern Delegation (1/8) • Nome Delegation (When not to use Inheritance) [Grand98] • Synopsis La delega è un modo per “estendere” e riusare le funzionalità di una classe senza ricorrere all’ereditarietà. La nuova classe simula l’ereditarietà utilizzando un’istanza della classe originale per fornire le funzionalità originali. A queste ne aggiunge di nuove. Ingegneria del Software - A.A. 2003/2004
  • 7. Il pattern Delegation (2/8) • Context - Delegation è più generale dell’ereditarietà - L’ereditarietà è utile per relazioni del tipo “is-a- kind-of” perchè sono intrinsecamente statiche - In relazioni tra classi più dinamiche, tipo “is-a- role-played-by”, l’ereditarietà crea problemi - Esempio: Sistema per la prenotazione di biglietti aerei che prevede passeggeri, personale di linea, agente di vendita biglietti aerei, ecc. Ingegneria del Software - A.A. 2003/2004
  • 8. Il pattern Delegation (3/8) Ingegneria del Software - A.A. 2003/2004
  • 9. Il pattern Delegation (4/8) • Forces – L’ereditarietà è una relazione statica che non cambia nel tempo – Se una classe tenta di nascondere un metodo o una variabile ereditata da una superclasse, allora quella superclasse non dovrebbe essere estesa – Dichiarare un classe come sottoclasse di una classe utility può essere rischioso • Estendendo una classe come Vector, quest’ultima potrebbe cambiare nel tempo perdendo la compatibilità • I client potrebbero presupporre la superclasse (es. cast per passaggio di parametri) • I client potrebbero richiamare i metodi pubblici della superclasse Ingegneria del Software - A.A. 2003/2004
  • 10. Il pattern Delegation (5/8) • Solution - Gli “attori” del pattern Delegation sono: Da Context… – Delegator – Delegate … a Solution Ingegneria del Software - A.A. 2003/2004
  • 11. Il pattern Delegation (6/8) • Consequences - Vantaggi -Aggira i problemi dell’ereditarietà -Facile cambiare il comportamento di un oggetto a run-time - Svantaggi - Meno strutturata rispetto all’ereditarietà: relazioni tra le classi meno ovvie • Implementation - Implementazione banale • Java API usage - Le API Java presentano molti esempi di delegation pattern. - Alla base del modello ad eventi Java. Ingegneria del Software - A.A. 2003/2004
  • 12. Il pattern Delegation (7/8) • Code example FlightSegment FlightSegment non estende la classe LuggageCompartment! Ingegneria del Software - A.A. 2003/2004
  • 13. Il pattern Delegation (8/8) LuggageCompartment LuggageCompartment non estende Vector! • Related Patterns - Molti pattern usano il principio di delega Es. Decorator, Proxy, Observer. Ingegneria del Software - A.A. 2003/2004