C'è una categoria interessante di oggetti che ho visto in jQuery e altre librerie di attraversamento di alberi DOM.
Un modo tradizionale di mutare i nodi in un albero funzionerebbe in qualche modo in questo modo:
Elements matches = tree.findAll(condition);
for(Element e in matches) {
if (condition2(e)) {
e.setText("Hello");
}
}
... o usando le funzioni del secondo ordine:
tree.findAll(condition)
.filter(condition2)
.forEach(e -> e.setText("Hello"));
In questi esempi, c'è una distinzione esplicita tra la raccolta e l'elemento. Tuttavia, il tipo di oggetto di cui sto parlando sfuma la linea comportandosi come se fossero una raccolta e elementi singoli e mutevoli.
tree.findAll(condition)
.filter(condition2)
.setText("Hello"); // Affects all matched nodes, if any
Questi oggetti sostanzialmente astraggono il concetto di pluralità. Se l'oggetto è vuoto, tutte le mutazioni sono vietate. Se ci sono più elementi, esso scorre automaticamente attraverso di loro ed esegue l'operazione appropriata su tutti loro. Le operazioni che hanno senso solo per i singoli elementi, come String s = matches.getText()
tendono a, in qualche modo ben definito, scegliere un elemento specifico (come il primo) da chiamare.
La mia domanda è se esiste una terminologia appropriata per riferirsi a questi tipi di oggetti "plurality-agnostic", per mancanza di un termine migliore.