Design Patterns
Qui trovi un insieme di esercizi che ti permetteranno di metterti alla prova con i design patterns.
Esercizi sui principali design patterns: Singleton, Strategy...
Esercizio 1: Strategie di sconto per una racchetta! (Pattern Strategy)
Implementa un sistema per calcolare il prezzo scontato di una racchetta da tennis, utilizzando il pattern Strategy per gestire diversi tipi di sconto.
ScontoBenvenuto: applica uno sconto del 10%.
ScontoSocio: applica uno sconto del 20% e poi toglie ulteriori 10€ dal prezzo scontato.
Nel main:
crea un'istanza di Racchetta con ScontoBenvenuto.
Calcola e stampa il prezzo scontato di una racchetta da 200€ usando ciascuna delle strategie: sconto di benvenuto e sconto socio.
Esercizio 2: La Federazione Italiana Tennis (pattern Singleton)
La Federazione Italiana Tennis (FIT) vuole tenere traccia di tutti i suoi tesserati.
Per tale motivo si realizzi la classe FIT in grado di tenere traccia dei tesserati in un TreeMap<String nome, Integer torneiVinti>.
Quando viene creato un Tennista automaticamente viene inserito nel TreeMap. E se vengono fatte modifiche al nome o ai tornei vinti, la modifica si deve ripercuotere sul TreeMap tesserati.
Esercizio 3: Lanci di Dadi (pattern Factory)
Implementare un programma in Java che simuli il lancio di diversi tipi di dado usando il pattern Factory Method.
Obiettivo:
Creare tre dadi di tipo diverso (a 6, 10 e 20 facce) utilizzando il pattern Factory Method, lanciare i dadi secondo le specifiche fornite, e analizzare i risultati dei lanci.
Specifiche:
Dado a 6 facce:
Chiedi all'utente quante volte lanciare il dado a 6 facce.
Effettua il numero di lanci specificato e salva i risultati in un vettore.
Calcola e visualizza la media dei valori ottenuti.
Dado a 10 facce:
Chiedi all'utente quante volte lanciare il dado a 10 facce.
Effettua il numero di lanci specificato e salva i risultati in un altro vettore.
Conta quanti dei risultati sono stati maggiori o uguali a 6 e stampa il conteggio.
Dado a 20 facce:
Chiedi all'utente quante volte lanciare il dado a 20 facce.
Effettua il numero di lanci specificato e salva i risultati in un terzo vettore.
Verifica se almeno uno dei lanci ha prodotto il numero 10 e stampa un messaggio che indica se il numero 10 è stato ottenuto.
Requisiti Tecnici:
Implementa un’interfaccia Dado con i seguenti metodi:
int lancia(): esegue un lancio e restituisce un valore casuale in base al numero di facce del dado.
String getDescrizione(): restituisce una descrizione del dado (ad es., "Dado a 6 facce").
Implementa una classe factory (DadoFactory) che fornisca un metodo per creare un dado specificando il numero di facce (ad es., 6, 10 o 20).
Usa il pattern Factory Method per creare i dadi e centralizzare la logica di creazione degli oggetti.
Output Atteso:
Il programma dovrà mostrare:
La media dei risultati dei lanci per il dado a 6 facce.
Il conteggio dei lanci >= 6 per il dado a 10 facce.
La presenza o assenza del numero 10 nei lanci del dado a 20 facce.