Ho un sistema con una struttura come questa:
Il ConcreteWriteable
memorizza nella cache ReadOnlyWrapper
.
Questo è un sistema simile a quello che%'sSystem.Array
utilizza per il suo metodo Array.AsReadOnly<T>(T[] array)
(ignorando per il momento che System.Array
's AsReadOnly
è statico). Tuttavia, guardando il codice per System.Array
all'origine di riferimento, System.Array.AsReadOnly
restituisce ogni volta un nuovo wrapper, mentre sto creando il wrapper allo stesso tempo di ConcreteWriteable
e lo sto memorizzando nella cache, quindi restituisco lo stesso ogni tempo.
Questo mi ha fatto pensare, c'è qualche ragione per cui non dovrei farlo? C'è qualche ragione per cui la creazione di un nuovo wrapper ogni volta è più desiderabile che restituire lo stesso wrapper (tenendo presente che il wrapper non può modificare il ConcreteWriteable
ed è effettivamente un wrapper, non una copia)?