Design Patterns: Adapter e Bridge
17 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

Perché il design pattern Adapter permette a certe classi di interagire?

  • Rende note le istanze di classi presenti
  • Passa le chiamate tra classi implementate in linguaggi diversi
  • Tiene traccia dei nomi delle classi disponibili
  • Elimina l'incompatibilità tra le interfacce (correct)
  • Quale sarà la soluzione per il design pattern Object Adapter?

  • Nessuna istanza
  • Solo una istanza per il ruolo Adapter
  • Una istanza per ciascun ruolo Adapter.Adaptee, Target
  • Una istanza per ciascun ruolo Adapter e Adaptee (correct)
  • Il design pattern Adapter può essere usato per:

  • Decidere quale oggetto istanziare
  • La riduzione dell'accoppiamento tra classi (correct)
  • Controllare il verificarsi di condizioni prima di chiamare metodi
  • La gestione di un object pool
  • Il design pattern Adapter serve a:

    <p>Convertire una interfaccia di una classe in un'altra</p> Signup and view all the answers

    Per il design pattern Adapter, il ruolo Adapter

    <p>È un'interfaccia</p> Signup and view all the answers

    Il design pattern Adapter a due vie:

    <p>Fornisce una indirettezza in più rispetto all'Adapter (versione Object)</p> Signup and view all the answers

    Il design pattern Adapter traduce:

    <p>Invocazioni, variando nome metodi, tipi parametri etc.</p> Signup and view all the answers

    Quale fra questi è un vantaggio che ottengo utilizzando il pattern Adapter?

    <p>Poter cambiare delle interfacce senza dover modificare il client</p> Signup and view all the answers

    Nella soluzione suggerita del design pattern Class Adapter:

    <p>Elimina l'uso di una istanza all'interno di Adapter</p> Signup and view all the answers

    Nella soluzione suggerita del design pattern Class Adapter:

    <p>L'Adapter eredita l'Adaptee</p> Signup and view all the answers

    La soluzione suggerita dal design pattern Class Adapter:

    <p>Cambia una classe incompatibile modificandone i metodi</p> Signup and view all the answers

    Il design pattern Bridge permette:

    <p>Alle classi client di distinguere fra varie astrazioni</p> Signup and view all the answers

    Per una certa implementazione, il design pattern Bridge:

    <p>Richiede di implementare metodi con lo stesso nome su classi diverse</p> Signup and view all the answers

    Il design pattern Bridge permette alla classe client di:

    <p>Tenere riferimenti a oggetti che sono sottotipi di Implementor</p> Signup and view all the answers

    Per il design pattern Bridge, Implementor:

    <p>È un'interfaccia</p> Signup and view all the answers

    Per il design pattern Bridge, la classe Abstraction:

    <p>Tiene il riferimento di una istanza</p> Signup and view all the answers

    In un codice che utilizza il pattern Bridge vengono creati 3 ConcreteImplementor e 4 Refined Abstraction. Se non utilizzassi il pattern, e volessi mantenere tutte le possibili combinazioni, quante classi dovrei creare?

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

    Study Notes

    Design Pattern: Adapter

    • Scopo: Il design pattern Adapter consente a classi con interfacce incompatibili di interagire tra loro.
    • Risolve: L'incompatibilità tra le interfacce tramite un adattatore che converte l'interfaccia di una classe in un'altra.
    • Varianti:
      • Object Adapter: Utilizza un'istanza di classe per adattare l'interfaccia.
      • Class Adapter: Utilizza l'ereditarietà per adattare l'interfaccia.

    Design Pattern: Bridge

    • Scopo: Il design pattern Bridge decouples un'astrazione dalla sua implementazione.
    • Risolve: La necessità di poter modificare l'implementazione di un'astrazione senza dover modificare l'astrazione stessa.
    • Elementi:
      • Abstraction: Definisce l'interfaccia dell'astrazione.
      • Implementor: Definisce l'interfaccia dell'implementazione.
      • Refined Abstraction: Estensioni dell'astrazione.
      • Concrete Implementor: Estensioni dell'implementazione.

    Domande e Risposte:

    • D1: Il design pattern Adapter permette a certe classi di interagire perché:

      • Risposta: (B) Elimina l'incompatibilità tra le interfacce.
    • D2: La soluzione per il design pattern Object Adapter avrà:

      • Risposta: (A) Una istanza per ciascun ruolo Adapter, Adaptee, Target.
    • D3: Il design pattern Adapter può essere usato per:

      • Risposta: (c) La riduzione dell'accoppiamento tra classi.
    • D4: Il design pattern Adapter serve a:

      • Risposta: (A) Convertire una interfaccia di una classe in un'altra.
    • D5: Per il design pattern Adapter, il ruolo Adapter:

      • Risposta: (B) È una classe.
    • D6: Il design pattern Adapter a due vie:

      • Risposta: (c) Fornisce una indirettezza in più rispetto all' Adapter (versione Object).
    • D7: Il design pattern Adapter traduce:

      • Risposta: (a) Invocazioni, variando nome metodi, tipi parametri etc.
    • D8: Quale fra questi è un vantaggio che ottengo utilizzando il pattern Adapter:

      • Risposta: (B) Poter cambiare delle interfacce senza dover modificare il client.
    • D9: Nella soluzione suggerita del design pattern Class Adapter:

      • Risposta: (D) Istanzia un Adaptee all'interno dell'Adapter.
    • D10: Nella soluzione suggerita del design pattern Class Adapter:

      • Risposta: (C) L'Adapter eredita l'Adaptee.
    • D11: La soluzione suggerita dal design pattern Class Adapter:

      • Risposta: (d) Cambia una classe incompatibile modificandone i metodi.
    • D12: Il design pattern Bridge permette:

      • Risposta: (D) Alle classi client di distinguere fra varie astrazioni.
    • D13: Per una certa implementazione, il design pattern Bridge:

      • Risposta: (B) Richiede di implementare metodi con lo stesso nome su classi diverse.
    • D14: Il design pattern Bridge permette alla classe client di:

      • Risposta: (D) Tenere riferimenti a oggetti che sono sottotipi di Implementor.
    • D15: Per il design pattern Bridge, Implementor:

      • Risposta: (A) È un'interfaccia.
    • D16: Per il design pattern Bridge, la classe Abstraction:

      • Risposta: (C) Tiene il riferimento di una istanza.
    • D17: In un codice che utilizza il pattern Bridge vengono creati 3 ConcreteImplementor e 4 Refined Abstraction. Se non utilizzassi il pattern, e volessi mantenere tutte le possibili combinazioni, quante classi dovrei creare?

      • Risposta: (B) 12.
    • D18: Un negozio vende una collezione di blocchi. Questi possono essere di metallo o di legno, dipinti, graffiati o patinati. Talvolta possono addirittura essere radioattivi o magnetizzati. Quale design pattern sarebbe adatto per risolvere questo problema?

      • Risposta: Il design pattern Bridge potrebbe essere adatto per risolvere questo problema. Si potrebbe utilizzare un'interfaccia Abstraction per definire le caratteristiche generali dei blocchi (materiale, finitura) e differenti implementazioni ConcreteImplementor per definire proprietà specifiche (radioattività, magnetismo).

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Questo quiz esplora i design pattern Adapter e Bridge, cruciali nella progettazione del software. Scoprirai come queste strategie risolvono il problema dell'incompatibilità delle interfacce e come separano le astratte dall'implementazione. Metti alla prova le tue conoscenze sui concetti fondamentali di questi pattern.

    More Like This

    Adapter Pattern Quiz
    10 questions

    Adapter Pattern Quiz

    EvaluativeRadiance avatar
    EvaluativeRadiance
    Adapter Pattern: Converting Interfaces
    6 questions
    Adapter and Bridge Patterns Overview
    40 questions
    Use Quizgecko on...
    Browser
    Browser