|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Создавать классы, чтобы различать объекты
Всем привет!
Продолжаю работать над системой предметов и инвентаря для своей игры. Возник такой вопрос. В этой теме часто приходилось читать что, мол, нужно "отстроить ботинки от рукавиц" (не дословная цитата, но смысл понятен). Вопрос у меня такой. Если сейчас у меня есть (для тестов) куртка, сапоги и рукавицы, которые имеют полностью идентичные свойства и методы, имеет смысл делать для них отдельные подклассы? Самому пока не хочется. Мне представляется, что создание отдельного класса должно быть оправдано чем-то более значимым. Что думаете? Спасибо.
__________________
Не сломано - не чини! |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
сделать интерфейс и вынести все что общее в него.
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
undefined, мне кажется, ты меня неправильно понял. У меня не просто что-то общее, у меня ВООБЩЕ ВСЁ будет общее. Потому и спрашиваю. Имеет ли смысл плодить классы EquipmentBoots, EquipmentCoat и EquipmentHat, если состав свойств и методов у них пока идентичные?
__________________
Не сломано - не чини! |
|
|||||
Регистрация: Jul 2014
Сообщений: 42
|
Если не плодить классы, тогда, наверное, потребуется подход с внешними данными(кажется, у Вас БДшка) + парсеры, которые будут заполнять один объект(если он такой гибкий) и в нём будет некий идентификатор, представляющий его тип в игре - Boots/Coat/Hat
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
DEVORON, да, всё верно. Я именно об этом и спрашиваю. Какие плюсы/минусы от использования: а) отдельных классов и б) идентификаторов внутри единого класса.
__________________
Не сломано - не чини! |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
В идеале должно быть так: все, что есть сейчас выносится в EquipmentItem, а в EquipmentBoots, EquipmentCoat и EquipmentHat оставляем пустые классы,отнаследованные от EquipmentItem.Ничего плохого в пустых классах нет, это называется маркерный интерфейс/класс. |
|
|||||
Цитата:
Да и вообще гадать о плюсах или минусах какого либо решения без четкой задачи - по-моему трата времени в пуступю, складывается впечатление, что автор полагает, что все знают его проект/архитектуру/задачи и т.п.
__________________
местонахождение |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
согласен нужен/не нужен зависит от задачи.Например есть перс "голова профессора доуэля", который из амуниции можен надеть только шляпу
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
undefined, спасибо, взял на заметку.
Цитата:
__________________
Не сломано - не чини! |
|
|||||
Цитата:
Не вижу причин плодить сущности в том случае, если объекты полностью идентичны. То, что ты говоришь, называется ООП ради ООП. Пока это возможно, надо делать var boots:EquipmentItem = new EquipmentItem('bootsImage', args...); var coat:EquipmentItem = new EquipmentItem('coatImage', args...); И ТОЛЬКО в том случае, если у шляпы действительно появится специфическое поведение, тогда делаем класс Будьте проще
__________________
while(live()) { hope(); } |
Часовой пояс GMT +4, время: 23:51. |
|
« Предыдущая тема | Следующая тема » |
|
|