13.08.2018, 21:08
|
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Маркерные интерфейсы используются, когда надо выразить не ЧТО ДЕЛАЕТ объект, а ЧТО МОЖНО СДЕЛАТЬ с ним. Что значит "сделать с ним"? Ну, обычно это значит "передать аргументом в какую-то функцию", ибо "делают" у нас функции. Например, можно пометить какие-то предметы разных классов как ДобавлябельныеВИнвентарь. Но, как правильно заметил Кейси, это лишь отодвигает проблему вглубь — в инвентаре все-равно придется разбираться что это за фрукт. Тем не менее, положа руку на сердце, добавляемые в инвентарь предметы могут на самом деле не иметь общих методов, так как используются совершенно по-разному, и даже индивидуальную иконку иметь не обязаны, а такие поля как name или ID — общие для ВСЕХ объектов, а не только Добавлябельных. Так что в каких-то ситуациях это может быть инструментом, упрощающим архитектуру — если какой-то метод реально готов принимать для обработки объекты разных типов.
|