Похоже, вы хотите перечисление вместо интерфейса, который даст вам возможность объединить это в набор с гарантированной уникальностью.
public enum WeaponAccessory {
EXTENDED_MAGAZINE,
SUPPRESSOR,
THUMB_GRIP,
ANGLED_GRIP
}
Использование этого становится тривиальным вопросом добавления определенного типа аксессуаров для оружия, которое вы хотите, к любому оружию, которое вы пожелаете. Я оставляю эту часть в качестве упражнения для читателя.