Considera quanto segue: I controller e le viste sono presenti in un'applicazione client. Poiché viene eseguito esclusivamente sul lato client, ogni controller deve esistere solo una volta.
All'inizio pensavo di implementare tutto come Singletons, ma questo non mi sembra giusto per alcune ragioni.
Alcuni sono istanziati in questo modo:
abstract class View(controller: Controller)
ora in ogni vista faccio determinate cose, in base al controller che ho ottenuto.
Alcuni controller devono avere parametri impostati al momento dell'inizializzazione, questo parla di una classe, piuttosto che di un singolo. (Certo che potrei fare: MyObject.set (qualunque cosa) ma non è né pulito né bello)
Ora la mia idea era di creare una semplice HashMap mutabile per i controller e memorizzare le classi come chiavi e esattamente un oggetto corrispondente come valore.
Ora, dopo ogni inizializzazione, controllo HashMap per un'istanza e, se ce n'è già una, la restituisco.
Sembra hacky però.
Ovviamente potrei semplicemente seguire le lezioni fino in fondo, ma non sono sicuro che sia un buon modo. Voglio dire, se istanzio nuovi Controllori ogni pochi secondi ... (È un gioco di cui stiamo parlando, quindi ci sono già molti calcoli in corso)