Есть ли способ обнаружить во время выполнения, какие подклассы существуют для данного класса?
Редактировать: Из ответов на этот вопрос я думаю, что мне нужно еще немного уточнить, что я пытаюсь сделать. Я знаю, что это не распространенная практика в Какао, и что это может сопровождаться некоторыми оговорками.
Я пишу парсер с использованием шаблона динамического создания. (См. Книгу «Модели проектирования какао» Бака и Яктмана, глава 5.) По сути, экземпляр синтаксического анализатора обрабатывает стек и создает экземпляры объектов, которые знают, как выполнять определенные вычисления.
Если я могу получить все подклассы класса MYCommand
, я могу, например, предоставить пользователю список доступных команд. Кроме того, в примере из главы 5 синтаксический анализатор имеет словарь подстановки, поэтому можно использовать такие операторы, как +, -, * и /. (Они сопоставлены с MYAddCommand
и т. Д.) Мне показалось, что эта информация относится к подклассу MyCommand
, а не к экземпляру синтаксического анализатора, поскольку она как бы побеждает идею динамического создания.