Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.06.2018, 10:14
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 370
По умолчанию Создавать классы, чтобы различать объекты

Всем привет!

Продолжаю работать над системой предметов и инвентаря для своей игры. Возник такой вопрос. В этой теме часто приходилось читать что, мол, нужно "отстроить ботинки от рукавиц" (не дословная цитата, но смысл понятен).

Вопрос у меня такой. Если сейчас у меня есть (для тестов) куртка, сапоги и рукавицы, которые имеют полностью идентичные свойства и методы, имеет смысл делать для них отдельные подклассы? Самому пока не хочется. Мне представляется, что создание отдельного класса должно быть оправдано чем-то более значимым. Что думаете?

Спасибо.
__________________
Не сломано - не чини!

Старый 05.06.2018, 11:05
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,249
сделать интерфейс и вынести все что общее в него.

Старый 05.06.2018, 12:22
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 3  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 370
undefined, мне кажется, ты меня неправильно понял. У меня не просто что-то общее, у меня ВООБЩЕ ВСЁ будет общее. Потому и спрашиваю. Имеет ли смысл плодить классы EquipmentBoots, EquipmentCoat и EquipmentHat, если состав свойств и методов у них пока идентичные?
__________________
Не сломано - не чини!

Старый 05.06.2018, 12:38
DEVORON вне форума Посмотреть профиль Отправить личное сообщение для DEVORON Найти все сообщения от DEVORON
  № 4  
Ответить с цитированием
DEVORON

Регистрация: Jul 2014
Сообщений: 41
Если не плодить классы, тогда, наверное, потребуется подход с внешними данными(кажется, у Вас БДшка) + парсеры, которые будут заполнять один объект(если он такой гибкий) и в нём будет некий идентификатор, представляющий его тип в игре - Boots/Coat/Hat

Старый 05.06.2018, 12:50
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 5  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 370
DEVORON, да, всё верно. Я именно об этом и спрашиваю. Какие плюсы/минусы от использования: а) отдельных классов и б) идентификаторов внутри единого класса.
__________________
Не сломано - не чини!

Старый 05.06.2018, 12:58
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 6  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,249
Цитата:
Какие плюсы/минусы от использования: а) отдельных классов и б) идентификаторов внутри единого класса.
отдельные классы дают бОльшую гибкость т.к. в случае если у шляпы,например, появится специфичное поведение будет место, куда это дописать.
В идеале должно быть так: все, что есть сейчас выносится в EquipmentItem, а в EquipmentBoots, EquipmentCoat и EquipmentHat оставляем пустые классы,отнаследованные от EquipmentItem.Ничего плохого в пустых классах нет, это называется маркерный интерфейс/класс.

Старый 05.06.2018, 13:08
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 7  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,059
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Цитата:
Ничего плохого в пустых классах нет это называется маркерный интерфейс/класс.
Это называется плодить сущности. Если в отдельном классе нет потребности - он не нужен.
Да и вообще гадать о плюсах или минусах какого либо решения без четкой задачи - по-моему трата времени в пуступю, складывается впечатление, что автор полагает, что все знают его проект/архитектуру/задачи и т.п.
__________________
местонахождение

Старый 05.06.2018, 13:39
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 8  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,249
согласен нужен/не нужен зависит от задачи.Например есть перс "голова профессора доуэля", который из амуниции можен надеть только шляпу

Старый 05.06.2018, 14:01
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 9  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 370
undefined, спасибо, взял на заметку.

Цитата:
Сообщение от СлаваRa Посмотреть сообщение
Это называется плодить сущности. Если в отдельном классе нет потребности - он не нужен.
Да и вообще гадать о плюсах или минусах какого либо решения без четкой задачи - по-моему трата времени в пуступю, складывается впечатление, что автор полагает, что все знают его проект/архитектуру/задачи и т.п.
СлаваRa, автор поэтому и старается формулировать вопросы по возможности в как можно более принципиальном виде. Ведь помимо конкретных целей и задач существуют общие правила, примеры хорошей практики и т.п. Об этом и спрашиваю.
__________________
Не сломано - не чини!

Старый 05.06.2018, 15:26
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 10  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 350
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Цитата:
Сообщение от undefined Посмотреть сообщение
отдельные классы дают бОльшую гибкость т.к. в случае если у шляпы,например, появится специфичное поведение будет место, куда это дописать.
В идеале должно быть так: все, что есть сейчас выносится в EquipmentItem, а в EquipmentBoots, EquipmentCoat и EquipmentHat оставляем пустые классы,отнаследованные от EquipmentItem.Ничего плохого в пустых классах нет, это называется маркерный интерфейс/класс.
Не могу согласиться.
Не вижу причин плодить сущности в том случае, если объекты полностью идентичны. То, что ты говоришь, называется ООП ради ООП.
Пока это возможно, надо делать
Код AS3:
var boots:EquipmentItem = new EquipmentItem('bootsImage', args...);
var coat:EquipmentItem = new EquipmentItem('coatImage', args...);
и тд..
И ТОЛЬКО в том случае, если у шляпы действительно появится специфическое поведение, тогда делаем класс
Код AS3:
class EquipmentHat extends EquipmentItem
Будьте проще
__________________
while(live()) { hope(); }

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:33.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.