Считаются ли подклассы сотрудниками их суперклассов?
Если у вас есть, скажем, абстрактный класс XMLParser, который вы расширяете, чтобы сделать XMLParser1 и XMLParser2, является ли XMLParser коллаборатором XMLParser1 и XMLParser2?
1 ответ
На самом деле хороший вопрос, но я бы сказал нет: почему? поскольку вся идея наследования заключается в том, что рассматриваемый класс получает некоторые из своих атрибутов и поведений от своего предка, так что вы на самом деле спрашиваете, может ли класс сотрудничать с самим собой? В какой-то шизоидной версии объектов, я думаю, вы могли бы сказать, что это имеет смысл, но нет, я бы точно не изобразил аспекты его поведения как отдельные в диаграмме сотрудничества.
Кроме того, имейте в виду, что весь смысл диаграмм сотрудничества состоит в том, чтобы показать, кто чем занимается. Если это не тот случай, когда подкласс является атомарной сущностью, ваша модель, вероятно, ошибочна.