DEV Community
•
2026-08-05 17:00
State Pattern: oggetti che cambiano comportamento in base al proprio stato
Il problema: lo switch sullo stato che divora il codice
Un ordine in un e-commerce ha diversi stati: draft, pending, paid, shipped, delivered, cancelled, refunded. Ogni operazione dipende dallo stato corrente: puoi pagare un ordine solo se e pending, puoi spedire solo se e paid, puoi cancellare solo se non e già shipped. Il codice diventa una cascata di if ($this->status === 'pending...