Sobes.tech
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).