Junior
Quali pattern di progettazione conosci?
sobes.tech AI
Risposta dell'AI
-
** Creazionali**
- Metodo di fabbrica (modo di creare oggetti tramite un metodo di fabbrica invece che direttamente tramite il costruttore)
- Fabbrica astratta (interfaccia per creare famiglie di oggetti correlati senza specificare le loro classi concrete)
- Costruttore (creazione passo passo di oggetti complessi, consentendo di ottenere diverse varianti dell'oggetto usando lo stesso codice di costruzione)
- Prototipo (creazione di nuovi oggetti copiando un modello esistente)
- Singleton (garantisce che esista solo un'istanza della classe e fornisce un punto di accesso globale ad essa)
-
Strutturali
- Adapter (permette a oggetti con interfacce incompatibili di lavorare insieme)
- Ponte (separa astrazione e implementazione, consentendo loro di cambiare indipendentemente)
- Composto (tratta oggetti singoli e gruppi di oggetti allo stesso modo)
- Decoratore (aggiunge responsabilità nuove agli oggetti in modo dinamico)
- Facciata (fornisce un'interfaccia unificata a un insieme di interfacce di un sottosistema)
- Flyweight (gestisce in modo efficiente un gran numero di piccoli oggetti)
- Proxy (fornisce un oggetto sostitutivo che controlla l'accesso a un altro oggetto)
-
Comportamentali
- Chain of Responsibility (invia richieste lungo una catena di gestori)
- Comando (incapsula una richiesta come oggetto, consentendo di parametrizzare i clienti, mettere in coda le richieste, registrarle e supportare l'annullamento)
- Iteratore (fornisce un modo di accedere sequenzialmente a tutti gli elementi di un oggetto composto senza rivelarne la struttura interna)
- Mediatore (semplifica l'interazione tra più oggetti introducendo un oggetto mediatore)
- Memento (consente di salvare e ripristinare lo stato interno di un oggetto senza violare la sua incapsulamento)
- Osservatore (definisce una dipendenza uno-a-molti tra oggetti, in modo che quando uno cambia, tutti i dipendenti siano notificati e aggiornati)
- Stato (consente a un oggetto di cambiare comportamento quando il suo stato interno cambia)
- Strategia (definisce una famiglia di algoritmi, li incapsula e li rende intercambiabili)
- Metodo template (definisce lo scheletro di un algoritmo in un metodo, lasciando che le sottoclassi ridifiniscano alcuni passi senza cambiare la struttura complessiva)
- Visitatore (consente di aggiungere nuove operazioni a una gerarchia di classi senza modificarle)
Nel sviluppo Android, si utilizzano spesso pattern MVx (MVP, MVVM) e pattern della libreria Android Architecture Components (Room, ViewModel, LiveData, Navigation).