Design Pattern Flashcards
Descrivi i design Pattern
Soluzioni progettuali a problemi ricorrenti
Classifica i tipi di design pattern
- Creazionali
- Architetturali
- Strutturali
- Comportamentali
Descrivi il design Pattern Singleton
Il Singleton viene creato per obbligare a creare una singola istanza per un oggetto con lo scopo di renderlo più sicuro e risparmiare la memoria. I passi importanti sono:
* creare una variabile privata e static
* creare un costruttore di tipo private (per rendere l’ oggetto univoco)
* creare un metodo public static e syncronize (crea l’istanza)
Che relazione cè tra Spring Boot e singleton?
Per impostazione predefinita, tutti i bean in Spring sono singleton.
Descrivi il Principio solid
Il principio SOLID è costituito da 5 regole
Responsabilità singola (Un oggetto deve fare una cosa specifica)
Principio di Apertura e Chiusura. Una classe deve essere aperta all’ estenzione ma non alle modifiche.
Principio di Liskov. Una sottoclasse deve essere sostituibile dalla sua superclasse.
Segregazione delle Interfacce. Le interfacce devono esporre le funzionalità necessarie al client e non inserire metodi che non verranno mai utilizzati.
Inversione Controllo(Dipendenza) una sottoclasse non deve dipendere fortemente dalla sua superclasse.
Quando utilizzare il Pattern Factory Method
Si utilizza quando cè la necessità di lavorare con Oggetti complessi e Separare la creazione degli oggetti con il loro utilizzo
Descrivi L’ utilizzo del Prototype
Il Prototype si adotta quando la creazione di nuovi oggetti è particolarmente Costosa ed allora si crea una istanza di un oggetto invece di crearne una nuova.
Descrivi la Dependence Injection
Si tratta di un design pattern di creazione nel quale l’ oggetto riceve dall esterno le dipendenze rendendo gli oggetti indipendenti tra di loro
Descrivi L’ inversione Di Controllo
Viene implementata utilizzando un Container (Spring) il quale si occupa di gestire le dipendenze richieste aumentando così la manutenibilità del codice
Descrivi i tre strati principali per quanto riguarda lo sviluppo
- Strato di presentazione
- Strato di Servizio
- Strato di Persistenza