Ho qualcosa che funziona come una lista di dimensioni fisse - in realtà si chiama FixedSizeStack<T>
nel mio programma. Lo userò per rappresentare gli ultimi X eventi accaduti. Questo elenco di eventi verrà quindi esaminato da diversi osservatori e, se rileveranno i pattern, attiveranno un'azione.
Naturalmente, non vedo alcun motivo per loro di conoscere FixedSizeStack<T>
- a me ha senso presentarlo alle azioni come IEnumerable. Sto considerando di dare loro questa lista di eventi nei loro costruttori, quindi chiamare qualcosa come PreviewEvent(Event e);
e EventOccured();
e andranno a scorrere su questo IEnumerable.
Mi sento un po 'nauseato enumerare questo IEnumerable più volte, e rendendolo parte del contratto che cambia l'enumerazione - pensi che questo sia un metodo ragionevole?