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

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Прости мне моё занудство. Я на принципиальном уровне идею прекрасно понимаю (и имею опыт работы с реляционными СУБД как пользователь), но чего-то никак в голову не укладывается практическая реализация в создаваемой программе.

Цитата:
Сообщение от Tails Посмотреть сообщение
Списки с доступом данных по id или перечислением. Хранят соответствующие записи сущностей: AttackType, Attack и Unit соответственно.
Не совсем понимаю, что ты подразумеваешь под списками. Или это и есть те самые классы, которые непосредственно взаимодействуют с json-таблицами?

Я себе как представлял твой пример. Класс атаки примерно такой:

Код AS3:
public class Attack
{
private var _id: uint;
private var _type: uint;
private var _damage: int;
private var _cooldown: uint;
 
public function Attack (id: uint)
{
_id = id;
var jsonData: Object = JsonAttackData.getData(_id);
_type = jsonData[type];
_damage = jsonData[damage];
_cooldown = jsonData[cooldown];
}
То есть в момент, когда нам требуется данная атака, программа создаёт экземпляр приведённого мной класса,
который получает в конструктор требуемый id, по нему ломится в класс-парсер, обслуживающий соответствующую json-таблицу, и получает от статического метода все остальные данные из таблицы.

Цитата:
Метод списка, добавляет новую запись.
Добавляет куда? В json-таблицу?

Цитата:
Интерфейс, который Intarface? (Конструкция языка AS3) Нет, список - это просто обёртка над Object или Vector, с некоторыми публичными методами для удобной работы с данными. (Доступ записи по ID, как минимум)
Ну да, который конструкция. Если у разных классов одинаковый публичный метод add(), то это похоже на использование интерфейса. Или это всё-таки не разные классы, а наследники?

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