Создавать классы, чтобы различать объекты
Всем привет!
Продолжаю работать над системой предметов и инвентаря для своей игры. Возник такой вопрос. В этой теме часто приходилось читать что, мол, нужно "отстроить ботинки от рукавиц" (не дословная цитата, но смысл понятен). Вопрос у меня такой. Если сейчас у меня есть (для тестов) куртка, сапоги и рукавицы, которые имеют полностью идентичные свойства и методы, имеет смысл делать для них отдельные подклассы? Самому пока не хочется. Мне представляется, что создание отдельного класса должно быть оправдано чем-то более значимым. Что думаете? Спасибо. |
сделать интерфейс и вынести все что общее в него.
|
undefined, мне кажется, ты меня неправильно понял. У меня не просто что-то общее, у меня ВООБЩЕ ВСЁ будет общее. Потому и спрашиваю. Имеет ли смысл плодить классы EquipmentBoots, EquipmentCoat и EquipmentHat, если состав свойств и методов у них пока идентичные?
|
Если не плодить классы, тогда, наверное, потребуется подход с внешними данными(кажется, у Вас БДшка) + парсеры, которые будут заполнять один объект(если он такой гибкий) и в нём будет некий идентификатор, представляющий его тип в игре - Boots/Coat/Hat
|
DEVORON, да, всё верно. Я именно об этом и спрашиваю. Какие плюсы/минусы от использования: а) отдельных классов и б) идентификаторов внутри единого класса.
|
Цитата:
В идеале должно быть так: все, что есть сейчас выносится в EquipmentItem, а в EquipmentBoots, EquipmentCoat и EquipmentHat оставляем пустые классы,отнаследованные от EquipmentItem.Ничего плохого в пустых классах нет, это называется маркерный интерфейс/класс. |
Цитата:
Да и вообще гадать о плюсах или минусах какого либо решения без четкой задачи - по-моему трата времени в пуступю, складывается впечатление, что автор полагает, что все знают его проект/архитектуру/задачи и т.п. |
согласен нужен/не нужен зависит от задачи.Например есть перс "голова профессора доуэля", который из амуниции можен надеть только шляпу :)
|
undefined, спасибо, взял на заметку.
Цитата:
|
Цитата:
Не вижу причин плодить сущности в том случае, если объекты полностью идентичны. То, что ты говоришь, называется ООП ради ООП. Пока это возможно, надо делать Код AS3:
И ТОЛЬКО в том случае, если у шляпы действительно появится специфическое поведение, тогда делаем класс Код AS3:
|
Часовой пояс GMT +4, время: 18:50. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.