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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2012, 19:44
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию модульность и общий элемент

Снова мучаю вас глупыми вопросами о архитектуре.
Допустим есть у нас некая игра, игра поделена на модули, скажем :
модуль чата, денежный модуль, модуль меню и т.п.
Скажем в модуле денег есть некая переменная типа *общий баланс* ( ну это и логично, что именно в этом модуле должна быть эта переменная ) . Рассматривая дальнейшую логику, нам оказывается требуется показать общий баланс например в модуле меню или в чате ( образно говоря ) . Однако, как уже было сказано вся логика денег - в денежном модуле.
Вопрос : имеем ли мы право объявить в денежном модуле переменную *общий баланс* статической, чтобы из любого другого модуля можно было получить ее, если понадобится?
Разговор идет именно о редких переменных, а не о каждой типа на всякий случай.
Если же такая логика считается избыточной, то как в данном случае должна выглядеть нормальная архитектура?
__________________
Марк Tween

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

Регистрация: Mar 2011
Сообщений: 243
Как вариант, создать класс, в котором будут статические ссылки на каждый из модулей (если они конечно в единичных экземплярах).

Старый 05.03.2012, 20:02
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Они в единичных это понятно. Но дело то не в том,
Цитата:
в котором будут статические ссылки на каждый из модулей
Чем ваш подход кардинально отличается от
SomeClass.someVar ? Зачем создавать еще класс чтобы хранить в них ссылки, если мне нужна всего лишь 1 переменная ? Вообщем я скорее спрашиваю, такая архитектура нормальна или нужно меньть подход?, но как?
__________________
Марк Tween

Старый 05.03.2012, 20:07
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Вот все ругают MVC, как "неуместную головомойку" при создании игр, а там как раз таких проблем не возникает. Не надо было бы никаких статиков. Просто всем заинтересованным видам/контроллерам выдается ссылка на некий PointsModel (можно ограничить интерфейсом), в котором есть, например, геттер totalPoints.
__________________
Поймай яблоко 2!

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

Регистрация: Feb 2011
Сообщений: 100
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Вот все ругают MVC, как "неуместную головомойку" при создании игр, а там как раз таких проблем не возникает. Не надо было бы никаких статиков. Просто всем заинтересованным видам/контроллерам выдается ссылка на некий PointsModel (можно ограничить интерфейсом), в котором есть, например, геттер totalPoints.
Там есть более сложная задача - распилить модули на mvc. И я, честно говоря, так и не понял как это красиво сделать. Либо получается правильная но сложная структура, либо всё в общей каше. Для меня пожалуй это один из главных аргументов, почему я не пользуюсь mvc если не вижу крайней нужды.

Старый 05.03.2012, 20:21
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Вот все ругают MVC, как "неуместную головомойку" при создании игр
Тут скорее не важно игра это или еще что. Zebestov - не смог ли бы ты привести маленький пример решения моего вопроса через MVC или еще как?
__________________
Марк Tween

Старый 05.03.2012, 20:24
botbot вне форума Посмотреть профиль Отправить личное сообщение для botbot Найти все сообщения от botbot
  № 7  
Ответить с цитированием
botbot

Регистрация: Feb 2011
Сообщений: 100
Насчёт темы топика: я обычно вывожу подобные данные в один какой-то общий класс, который состоит из статических полей, которыми пользуются несколько модулей.
Но по конкретному примеру - скорее бы просто писал ссылку на модуль денег в модуле чата и меню.

Старый 05.03.2012, 20:32
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
MainModel содержит _pointsModel:PointsModel (есть геттер pointsModel)
Модули MainMenu и Chat получают ссылку на mainModel.pointsModel в конструктор, где она сохраняется в _pointsModel:PointsModel. После этого можно в любой момент взять _pointsModel.totalPoints.
__________________
Поймай яблоко 2!

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
Вот все ругают MVC, как "неуместную головомойку"
и очень зря

Старый 05.03.2012, 21:12
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 10  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Zebestov я тебя понял именно так :
Код AS3:
MainModel.as
 
private static var _pointsModel:PointsModel = new PointsModel();
 
public function get points():PointsModel {...}
 
MainMenu.as
 
public function MainMenu() {
    _point /*singleTone*/ = MainModel.getInstance();
    _point.setNewPoint(***);
     trace(_point.points(***)) // ok
}
так чтоли?

Добавлено через 4 минуты
Только вот если я правильно понял, то вариант trace(SomeClass.somePoint) будет в 100 раз понятнее и удобнее, чем твой подход, но если понял неверно, тогда хотелось бы подробнее
__________________
Марк Tween

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

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

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


 


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


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