Since this is collection, relating to 2nd part of the question
based on the combination of Components with true/false, we will arrive with name.
How do you intend to identify/group a set of three OR n (each time), for evaluating the name (linearly).
How about using a Builder
pattern to create/evaluate to a name.