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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.01.2012, 17:28
www.taras вне форума Посмотреть профиль Отправить личное сообщение для www.taras Найти все сообщения от www.taras
  № 1  
Ответить с цитированием
www.taras

Регистрация: Nov 2008
Сообщений: 16
Отправить сообщение для www.taras с помощью MSN Отправить сообщение для www.taras с помощью Skype™
Question Перевод ставок в центы, MODEL vs COMMAND

Добрый день, возник небольшой спор.
есть некая игра - казино, данные (ставки, баланс и тд) приходят с сервера в целым числом в центах: 1, 10, 100, 1000. Соответственно во вьюшке их нужно отобразить в дробных: 0.01, 0.1, 1, 10. Так спор возник из того что в каком месте их преобразовывать варианты:
1) непосредственно вьюка получает из модели , в модел гетеры которые отдают дробные значения, модель хранит данные в центах,
2) преобразовывать при получении ответа от сервера в дробные и обратно при запросе к серверу переводить в центы, в модели хранятся дробные данные.

Старый 04.01.2012, 17:33
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 2  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Я у себя на Java сервере сразу хранил информацию о деньгах в формате: 5.49. Эту же информацию отправлял на клиент, а там уже решал, как показывать: с центами или без.

А, в твоем случае, преобразовывать данные нужно во вьюшке (в том случае, если математика на клиенте оперирует теми же значениями: 1,10,100,1000)


Последний раз редактировалось toFL; 04.01.2012 в 17:37.
Старый 04.01.2012, 17:41
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Что мешает в модель встроить еще один метод типа: getFractialSum() ну или типа того, который при необходимости вернет дробное число?
так модель сразу будет отдавать данные в нужном формате, а хранить в том, в каком они пришли

Старый 04.01.2012, 19:25
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 4  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Если абстрагироваться от вопросов взлома (т.к. модель в таких приложениях вообще не должна ничего хранить, точнее дата лаер должен быть на сервере), то модель хранит данные в том виде в котором ей удобно, но "наверх" отдает в том виде в котором требуется. Т.е. вар. 1. Это еще и укрепляет контроль за данными т.к. вьюха не имеет данные во внутреннем представлении модели, следовательно не может случайно их изменить. Очень хороший вариант, ИМХО.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Данные должен форматировать для показа view. Перевод из целых в дробные это один из видов форматирования.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 04.01.2012, 20:07
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 6  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Мое ИМХО.
Есть сервер, есть клиент.
Клиент - самостоятельное отдельное приложение. Да, если есть возможность что-то изменить на сервере, то лучше сделать там, и сразу отдавать корректные данные. Но если так возможности нет...
В моделе хранятся определенные данные. Эти данные должны быть унифицированы для всего приложения. С другой стороны получаемые и отправляемые данные могут отличаться от того, что реально отображается в приложении. Да, можно ввести систему коэффициентов (и если этот коэффициент отсылается при инициализации приложения от сервера, то храниться он должен в моделе и использоваться только моделью для расчетов, т.е. примерно то, что посоветовал goodguy), но это означает что при каждом отображении нужного значения мы переводим из одной системы в другую. А если присваиваем новое значение к.-л. переменной, то должны учитывать кто это изменение инициализировал (клиент или сервер) чтоб не запутаться в расчетах. Т.е. система коэффициентов внутри модели - штука допустимая, но чреватая ошибками.
Если бы приложение использовало унифицированную систему расчетов, то таких проблем бы не было. Выход - переводить в нужную систему на входе и на выходе, т.е. при парсинге полученных значений от сервера и при отправке на сервер, т.е. в специальном "модуле", предназначенном для общения с сервером.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 04.01.2012, 20:28
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 7  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от alatar Посмотреть сообщение
Данные должен форматировать для показа view. Перевод из целых в дробные это один из видов форматирования.
Задача вьюера отображать и анимировать, а не преобразовывать типы. Вы меня удивляете.

Старый 04.01.2012, 20:34
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Это не преобразование типов, в модели данные остаются неизменными. Это отображение.

Добавлено через 1 минуту
Будет ли он анимировать или отделять разряды пробелом или показывать градус цельсия в виде градусов фаренгейта, разницы нет.

Добавлено через 2 минуты
Цитата:
Выход - переводить в нужную систему на входе и на выходе, т.е. при парсинге полученных значений от сервера и при отправке на сервер, т.е. в специальном "модуле", предназначенном для общения с сервером.
А какая система будет нужной?
Пример, надо отобразить данные в центах, долларах, рублях, драхмах и т.д., в зависимости от выбора пользователя, локали, еще чего-нибудь.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 04.01.2012, 21:40
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 9  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Имхо, перевод в различные единицы, это дело вьюхи или вообще утилитных классов.
Модели должно быть все равно какой линейкой ее измеряют.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 04.01.2012, 23:13
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
1. Модели наверно удобнее считать суммы и статистику всякую в центах. Значит пусть в центах и хранит
2. В каждой вьюшке копипастить логику перевода дробных в целые и наоборот глупо.
Значит делаем класс-утилиту, которым пользуется вьюшка, берущая данные из модели.


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

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

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


 


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


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