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

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Вот! Я как раз хотел ещё спросить в продолжение темы. Смотрите. Всё, что мы сейчас обсуждаем - это идентификаторы в Модели. Но у наших объектов ещё есть ID для Вью, плюс в силу специфики моего жанра (текстовый RPG/квест), ещё и ID подбора фраз для языковой системы.

Изначально я сразу назначал строковые ID и использовал их везде (Модель, Вью, язык) в неизменном виде. Потом начались усложнения. Например, в зависимости от пола ГГ фраза может звучать по-разному: "пришёл"/"пришла" и т.д. Я начал к идентификаторам добавлять пол персонажа (значение uint). Далее, по мере усложнения Модели и добавления функционала, я понял, что некоторые мои ID уже не так хорошо отражают суть и требуют уточнения. Но чуть только я их тронул, сразу "поехал" язык. Короче, я запутался.

В связи с эти подумалось завести класс-посредник, где в огромном справочнике будут указаны соответствия идентификаторов Модели и, например, Вью. Плюс туда же можно добавлять какую-то логику. Вот маленький пример из класса IconIDs, который хранит идентификаторы иконок статус-эффектов и синхронизирует их с ID Модели:

Код AS3:
static public function getIconID(statusID: String, genderID: uint) : String
		{
			if (_iconsSync[statusID + genderID as String]) return _iconsSync[statusID + genderID as String];
			else if (_iconsSync[statusID]) return _iconsSync[statusID];
		}
В общем, думаю, суть вопроса понятна. Как этот бардак организовывать!?
__________________
Не сломано - не чини!