Abbiamo due classi di pesci: BigFish
e LittleFish
, ognuna con la sua implementazione.
Entrambi i pesci si muovono in modo casuale tramite il metodo move()
.
BigFish
si può muovere in una posizione occupata da un LittleFish
(e mangiarlo).
LittleFish
invece non si può muovere dove si trova un BigFish
.
Descrivere:
- Se e come mai è utile un design pattern per implementare le classi di questo problema
- Quale struttura avranno le classi alla fine (usare pseudo-codice, non ci interessa l’implementazione esatta del movimento e dei controlli)
- Il ragionamento usato per la divisione in classi
Soluzione
Per risolvere questo problema si può utilizzare il Template Method, un design pattern che permette di definire una classe con un comportamento di base che potrà essere esteso o modificato in parte attraverso delle sottoclassi.