Design Patterns: Chain of Responsibility & Command
24 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale affermazione è vera riguardo al design pattern Chain of Responsibility?

  • Tutti i riceventi hanno la stessa priorità.
  • Si può scegliere la priorità del ricevente. (correct)
  • Si ha garanzia di avere sempre una risposta.
  • Si hanno lunghe catene di possibili riceventi.
  • Come interagiscono le classi nel design pattern Chain of Responsibility?

  • Una classe conosce più di una classe.
  • Una classe conosce tutte le altre classi.
  • Ciascuna classe conosce solo la classe successiva. (correct)
  • Ciascuna classe collabora con le altre per dare una risposta.
  • Qual è un vantaggio del design pattern Chain of Responsibility?

  • Può costituire una soluzione per limitare l'accoppiamento tra classi. (correct)
  • Può far diminuire il numero di metodi di una classe.
  • Può aumentare il numero di metodi di una classe.
  • Può aumentare l'accoppiamento tra classi.
  • Quale è vero riguardo al destinatario di una richiesta nel design pattern Chain of Responsibility?

    <p>Non conosce il tipo a runtime successivo nella catena.</p> Signup and view all the answers

    Quale affermazione sul pattern Command è inesatta?

    <p>L’esecuzione dei comandi non può avvenire in modalità parallela.</p> Signup and view all the answers

    Quale è uno svantaggio dell'uso del pattern Command?

    <p>Si potrebbero penalizzare le prestazioni a causa dell'indirezione introdotta.</p> Signup and view all the answers

    Cosa implica l'implementazione del design pattern Chain of Responsibility?

    <p>I possibili riceventi sono più di uno.</p> Signup and view all the answers

    Qual è un obiettivo principale del design pattern Chain of Responsibility?

    <p>Ridurre l’accoppiamento fra richiedente e ricevente di una richiesta.</p> Signup and view all the answers

    Quale affermazione è corretta riguardo al ruolo Composite nel design pattern Composite?

    <p>Può tenere riferimenti a istanze diverse della sua stessa classe</p> Signup and view all the answers

    Qual è l'obiettivo principale del design pattern Composite?

    <p>Far apparire in modo uniforme i client e i loro oggetti semplici e composti</p> Signup and view all the answers

    In quale situazione si ha trasparenza nel design pattern Composite?

    <p>Il client non deve distinguere fra oggetti semplici e compositi</p> Signup and view all the answers

    Per il design pattern Composite, quando si parla di sicurezza, cosa può fare il client?

    <p>Chiamare funzionalità di aggiunta solo su oggetti composti</p> Signup and view all the answers

    Qual è la funzione della superclasse nel design pattern Composite?

    <p>Definire metodi che i client possono chiamare sulle sottoclassi</p> Signup and view all the answers

    Quale affermazione sul ruolo Composite nel design pattern Composite è corretta?

    <p>Chiama metodi su istanze di sottotipi di Component</p> Signup and view all the answers

    Quale pattern è particolarmente indicato per rappresentare delle strutture ricorsive?

    <p>Composite</p> Signup and view all the answers

    Qual è una caratteristica della classe client nel design pattern Composite?

    <p>Deve avere il riferimento a un'istanza di un sottotipo di Component</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive correttamente la struttura tipica del design pattern Composite?

    <p>Una istanza per il ruolo Leaf e varie istanze per Composite</p> Signup and view all the answers

    Cosa consente di ottenere il design pattern Decorator?

    <p>Gerarchie profonde di classi</p> Signup and view all the answers

    Qual è una conseguenza dell'uso del design pattern Decorator per una classe client?

    <p>Deve distinguere fra oggetti che sono sottotipi di Decorator</p> Signup and view all the answers

    Cosa permette di fare il design pattern Decorator in relazione a una classe?

    <p>Aggiungere o togliere un piccolo compito ad una classe</p> Signup and view all the answers

    Quale affermazione è vera riguardo al ruolo Decorator nel design pattern Decorator?

    <p>È una classe astratta che tiene un riferimento</p> Signup and view all the answers

    Cosa stressa il design pattern Decorator riguardo ad un'interfaccia?

    <p>Lascia non fissati alcuni nomi dei metodi pubblici delle classi</p> Signup and view all the answers

    Chi tiene il riferimento al ConcreteComponent nel design pattern Decorator?

    <p>Entrambi, il ruolo Decorator e la classe client in alcuni casi</p> Signup and view all the answers

    Quale delle seguenti opzioni descrive correttamente un vantaggio del design pattern Decorator?

    <p>Togliere funzionalità ad una certa istanza a runtime</p> Signup and view all the answers

    Study Notes

    Chain of Responsibility

    • In questo pattern, il destinatario di una richiesta non è noto in anticipo.
    • Il destinatario può essere uno di una lista di potenziali destinatari, ognuno con un'area di competenza specifica.
    • La richiesta viene passata lungo la catena fino a quando non viene gestita correttamente.
    • Le classi nella catena non devono conoscere le altre classi.
    • Ogni classe conosce solo la classe successiva.
    • Questo pattern può ridurre il livello di accoppiamento tra le classi.

    Command

    • Questo pattern è usato per incapsulare una richiesta come un oggetto.
    • L'oggetto Command rappresenta una richiesta specifica.
    • I comandi possono essere memorizzati per un'esecuzione successiva o per annullare l'operazione.
    • Il pattern Command può essere usato per separare il codice che emette una richiesta da quello che la esegue.
    • Le richieste possono essere eseguite in modo parallelo.
    • Il pattern Command è un pattern comportamentale.

    Design Pattern Composite

    • Il ruolo Composite può contenere riferimenti a diverse istanze della stessa classe.
    • La superclasse Composite definisce i metodi che i client possono chiamare sulle sottoclassi.
    • Il design pattern Composite ha l'obiettivo di far apparire in modo uniforme ai client oggetti semplici e composti.
    • Il client non deve distinguere tra oggetti semplici e composti.
    • Il ruolo Composite chiama metodi su istanze di sottotipi di Component.
    • I riferimenti sono tenuti nelle sottoclassi.
    • La classe client deve avere il riferimento ad un'istanza di un sottotipo di Component.
    • Il design pattern Composite è particolarmente indicato per rappresentare strutture ricorsive ed operare su esse.
    • La versione del pattern Composite che produce trasparenza non può fornire sicurezza.
    • La soluzione per il design pattern Composite avrà tipicamente una istanza per il ruolo Composite e varie istanze per Leaf.

    Design Pattern Decorator

    • Tramite il design pattern Decorator si possono ottenere gerarchie profonde di classi.
    • Il design pattern Decorator può portare la classe client a dover chiamare vari metodi su vari oggetti.
    • Il design pattern Decorator permette di aggiungere o togliere un piccolo compito ad una classe.
    • Il ruolo Decorator può essere un'interfaccia.
    • Il ruolo Decorator viene implementato da un component.
    • Il design pattern decorator richiede classi client diverse fra loro.
    • Il riferimento al ConcreateComponent viene generalmente tenuto dal ruolo Decorator, e in alcuni casi dalla classe client.
    • Il design pattern Decorator aggiunge funzionalità ad un oggetto in maniera dinamica.
    • Il design pattern decorator può portare a implementare classi grandi.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Questo quiz esplora due importanti design patterns: Chain of Responsibility e Command. Scoprirai come questi pattern possono migliorare la struttura e la gestione del codice, riducendo l'accoppiamento e separando le richieste dalla loro esecuzione. Metti alla prova le tue conoscenze e comprensione di questi concetti chiave nella programmazione.

    More Like This

    Use Quizgecko on...
    Browser
    Browser