Il pattern iteratore è definito molto chiaramente. Come chiameresti il consumatore di un iteratore?
Il pattern iteratore è definito molto chiaramente. Come chiameresti il consumatore di un iteratore?
Il mio commento è stato di dire che chiamerei la classe un "aggregatore" e la sto mettendo qui come richiesto. Vorrei anche rispondere al commento suggerendo che i risultati non sono sempre aggregati, presumibilmente nel senso di sommare un qualche tipo di valore.
Ciò che intendo con "aggregato" è la definizione qualitativa del dizionario del termine: "prendere tutte le unità nel loro insieme". Ciò non significa necessariamente che ogni record abbia una proprietà intera e che il totale di quella proprietà sia l'aggregato. Piuttosto, considererei l'aggregato come l'interpretazione del quadro generale. Stai considerando una sequenza di queste cose come parte di qualche più grande gestalt (cioè "nel suo complesso", in qualsiasi senso significhi per te).
Un motivo per cui potresti dover chiedere è che il gruppo di quattro originale che descrive il modello iteratore si riferisce a il consumatore di un iteratore con il nome altamente distintivo di "client" (e in effetti in seguito non mostrerà il cliente come uno dei partecipanti al modello).
Non conosco alcun gergo specifico per il consumatore di un iteratore e suppongo che non sia stato definito alcun nome standard.
Mi viene in mente Iteratoror, ma non mi aspetto che accada.
L'hai appena detto - il consumatore di un iteratore (o il client). :) Questa è la lingua utilizzata in questo riferimento e altrove.
In accordo con la risposta di Erik, il modo di nominare il consumatore (IMO) è implicare l'iterazione con un termine come aggregate
/ sum
/ iterate
o anche solo usare un plurale (ad esempio GetCustomers
). Tuttavia, descrivere il suo scopo commerciale è probabilmente più importante del chiamare il fatto che sta iterando (di nuovo IMO).
Iterable
. Un Iterable
usa un Iterator
per iterare i suoi elementi. Quindi sta consumando l'iteratore.
Nonostante quel "aggregatore", "IteratorClient" & "IteratorConsumer" sembra corrispondere all'idea, suggerisco di "evidenziare" l'obiettivo della tua classe, come identificativo della tua classe.
.............................
..+-----------------------+..
..| ArrayListClass |..
..+------*----------------+..
.........*...................
..........*..................
...........*.................
............*................
............*................
..+----------*--------+......
..| /......
..| Has Iterators /.......
..| / |......
..+----------------/--+......
.............................
Un'eccezione, che devo affrontare, è che hai una classe, senza iteratori, e fai una sottoclasse, con l'unico obiettivo di aggiungere iteratori, e non puoi o non vuoi aggiungere gli iteratori alla classe originale.
.............................
..+-----------------------+..
..| TreeViewClass |..
..+-----------*-----------+..
..............|..............
..............|..............
..............|..............
..............^..............
............./.\.............
............/...\............
.........../--*--\...........
..............|..............
..............|..............
..............|..............
..+-----------*-----------+..
..| IterableTreeViewClass |..
..+-----------------------+..
.............................
Saluti
Leggi altre domande sui tag design-patterns naming