<aside> <img src="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" alt="notion://custom_emoji/899aa73c-260f-813c-baa9-0003a270e9e6/29eaa73c-260f-8057-931f-007a0ac7402b" width="40px" />

Indice

</aside>

Separazione delle responsabilità

Finora abbiamo costruito i mattoni fondamentali del nostro piccolo motore di gioco: abbiamo definito le classi (Player, Weapon e Potion), ci siamo preoccupati di proteggere i dati tramite l’incapsulamento e abbiamo gestito le situazioni impreviste con le eccezioni. Se qualcosa non ti è chiaro o non hai completato gli esercizi precedenti, ti conviene fermarti un attimo e recuperare: da qui in avanti questi elementi saranno indispensabili.

Riassumendo ciò che abbiamo già realizzato:

Se però guardiamo al codice dentro main.py, salta fuori un problema evidente: tutto è mescolato. Il file gestisce i calcoli, stampa messaggi, controlla i turni e potrebbe perfino chiedere l’input all’utente. Funziona, ma è un miscuglio poco elegante e soprattutto poco flessibile.

È il momento di fare ordine creando una vera e propria architettura software.

Il principio SOLID (introduzione)

SOLID-1200.png

Quando le applicazioni crescono, non basta che funzionino: devono anche essere facili da capire, modificare ed estendere. Per questo motivo, nel tempo sono stati definiti alcuni principi di progettazione noti con l’acronimo SOLID.

SOLID raccoglie cinque linee guida che aiutano a scrivere codice più pulito, più flessibile e meno fragile:

In questa lezione ci concentreremo solo sulla S, il principio di responsabilità singola. Le altre lettere verranno introdotte più avanti, quando avremo una base sufficiente per comprenderle senza trasformarle in formule magiche da memorizzare.

S – Single Responsibility Principle (SRP)