Salve!

Mi servirebbe un consiglio di design.

Ho una classe che mi rappresenta un personaggio, un soggetto qualsiasi, con i suoi metodi draw() e update(), per il rendering e per l'update della logica rispettivamente.

Vorrei delegare il calcolo di tutte le operazioni per il movimento (o comunque qualsiasi tipo di calcolo fisico) ad un'altra classe.

del tipo vorrei avere:

codice:
public void update(float delta) {
    // le variabili di questa classe vengono modificate da un'altra classe che si occupa della fisica
    
    aggiornamento effettivo della posizione (ad esempio) in base alle variabili aggiornate
}
La classe che si occupa di questi calcoli come deve essere progettata? Deve prendere il giocatore da muovere in input? Tutti i metodi static?

Insomma vorrei separare totalmente la fisica dal personaggio, che non deve farsi da solo i calcoli.

Ho addirittura pensato che potrebbe essere la classe dedicata alla fisica a dover implementare il metodo update dove svolge tutti i suoi calcoli ripetutamente, facendo side-effect sulla classe personaggio che limita a disegnarsi.