Esiste una convenzione su come dichiarare, denominare, utilizzare o accedere alle proprietà degli oggetti che non aggiungono nuove informazioni e potrebbero essere ricalcolati in qualsiasi momento? Esempio di base (creato questo, solo per chiarimenti):
class User {
// provided by DB
int ID;
// calculated
boolean id_is_odd;
// provided by DB
Timestamp[] visits;
// calculated
long shortest_time_between_visits;
}
Dal momento che controllo un intero per stabilire se è pari o dispari, implementerei id_is_odd()
come funzione membro.
Ma forse visits
è molto grande e si dovrebbe evitare di calcolare shortest_time_between_visits
più volte. Quindi cosa fare con esso? Devo fare un getter che controlla se private shortest_time_between_visits
è nullo e, in caso affermativo, calcola prima? Sarebbe anche chiamato "getter" quando stiamo recuperando solo un valore calcolato? O definendo in costruttore? Esistono anche degli standard che definiscono una differenza tra proprietà native e calcolate? Non sono riuscito a trovare alcuna informazione su questo.
Ho taggato java, ma questo problema può essere applicato a più lingue con supporto per oggetti come Javascript.