Мне было интересно, как спроектировать систему, в которой у меня есть класс Super и пара классов, которые являются подклассами Super (скажем, Sub1, Sub2, Sub3), и мне нужен класс Cool. Теперь есть две вещи, которые я хочу иметь:
Sub1 и Sub2 могут быть Cool, Sub3 никогда не может быть Cool.
Я должен иметь возможность иметь список, в котором могут быть Sub1 и Sub2, если они крутые. Если, например, я создаю объект Sub1, и он классный, я могу поместить его в список, если нет, его нет в списке.
Есть предложения? Намеки?