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. (D)</p> Signup and view all the answers

Quale affermazione sul pattern Command è inesatta?

<p>L’esecuzione dei comandi non può avvenire in modalità parallela. (C)</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. (A)</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. (C)</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. (C)</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 (B)</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 (B)</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 (D)</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 (A)</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 (A)</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 (C)</p> Signup and view all the answers

Quale pattern è particolarmente indicato per rappresentare delle strutture ricorsive?

<p>Composite (D)</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 (A)</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 (A)</p> Signup and view all the answers

Cosa consente di ottenere il design pattern Decorator?

<p>Gerarchie profonde di classi (D)</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 (C)</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 (D)</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 (A)</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 (A)</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 (D)</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 (A)</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