article
Bridge Pattern: separare l'astrazione dall'implementazione
Pillar article sul Bridge Pattern: come evitare l'esplosione di sottoclassi separando cio che un oggetto fa da come lo fa.
Il problema: due dimensioni di variazione che moltiplicano le classiHai un sistema di notifiche con due dimensioni di variazione: il tipo di notifica ...
12/05/2026
article
Abstract Factory: famiglie di oggetti coerenti
Pillar article sull'Abstract Factory: come creare famiglie di oggetti correlati senza specificare le classi concrete, con esempi in PHP.
Il problema: oggetti che devono essere coerenti tra loroImmagina un'applicazione che genera documenti in formati diversi: PDF e HTML. Un documento PDF...
10/05/2026
article
State Pattern: oggetti che cambiano comportamento in base al proprio stato
Pillar article sullo State Pattern: eliminare i blocchi switch/if sullo stato trasformando ogni stato in una classe con il proprio comportamento.
Il problema: lo switch sullo stato che divora il codiceUn ordine in un e-commerce ha diversi stati: draft, pending, paid, shipped, delivered, cancelle...
05/05/2026
article
Proxy Pattern: controllare l'accesso senza cambiare l'interfaccia
Pillar article sul Proxy Pattern: lazy loading, access control e caching trasparente tramite oggetti surrogato che rispettano la stessa interfaccia.
Il problema: oggetti pesanti che non servono subitoHai un modello Article con una relazione comments(). La pagina del blog elenca 20 articoli con tito...
03/05/2026
article
Repository Pattern: separare il dominio dalla persistenza
Pillar article sul Repository Pattern: come creare un layer di accesso dati che isola la business logic dai dettagli del database.
Il problema: query SQL sparse ovunqueIn un progetto PHP che cresce, le query al database tendono a disperdersi: nel controller, nel service, a volte p...
02/05/2026
article
Factory Method: creare senza conoscere
Pillar article sul Factory Method Pattern nel framework: make() statico, SchemaBuilder per driver, e il principio di inversione delle dipendenze applicato alla creazione.
new e una dipendenza concretaOgni volta che scrivi new MysqlSchemaBuilder(), stai creando una dipendenza concreta. Il codice chiamante ora sa esattame...
28/04/2026