Normalmente quando ho alcuni dati da memorizzare, faccio qualcosa di simile
Model model = new Model();
Notifier notifier = new EventBus();
Store store = new DataStore();
model.updateTitle("new title");
store.save(model);
notifier.notifyAboutChange(model);
Ho letto molti post riguardo l'inserimento della logica nei modelli, ma le persone sembrano ancora salvare il loro modello aggiornato "fuori" dal modello che risulta nel codice come sopra, dove si notifica la modifica al di fuori del modello.
Perché non salvare direttamente nel modello? Quindi il codice sopra potrebbe essere qualcosa di simile
Model model = new Model(new EventBus(), new DataStore());
model.updateTitle("new title");
// sample model
class Model {
Constructor(Notifier notifier, Store store) {..}
void updateTitle(String str) {
this.title = str
this.store.update(this);
this.notifier.notifyAboutChange(this);
}
}
In questo modo ti assicuri che tutto viene eseguito ogni volta che viene richiamato l'aggiornamentoTitle e rende più semplici le chiamate ai modelli.
Un problema con questo potrebbe essere che gli oggetti sono spesso costruiti automaticamente da orms, il che significa che non hai accesso al costruttore / sono costruiti automaticamente. Questo potrebbe essere risolto iniettando nel metodo updateTitle.