Прочитав множество блогов, форумов и несколько документов Apple, я до сих пор не знаю, разумно ли делать обширные подклассы в Objective-C.
Возьмем, например, следующий случай:
Скажем, я разрабатываю игру-головоломку, в которой много элементов. Все эти элементы имеют определенную долю одинакового поведения. Затем в моей коллекции элементов разные группы элементов имеют одинаковое поведение, отличая группы от групп и т. д.
Итак, после определения того, что от чего наследуется, я решил создать подкласс из забвения. А почему бы и нет? Учитывая простоту настройки общего поведения в этой модели, я думаю, что добился того, для чего предназначен ООП.
Но — и это источник моего вопроса — Apple упоминает использование делегатов, методов источника данных и неформальных протоколов в пользу создания подклассов. Это действительно уму непостижимо, почему?
Кажется, есть два лагеря. Кто за подклассы, кто за нет. Видимо зависит от личного вкуса. Мне интересно, каковы плюсы и минусы массового создания подклассов, а не массового создания подклассов?
Подводя итог, у меня простой вопрос: Прав ли я? А почему или почему бы и нет?