![]() |
|
||||||||||
|
|||||
|
[+4 06.05.14]
|
Снова мучаю вас глупыми вопросами о архитектуре.
Допустим есть у нас некая игра, игра поделена на модули, скажем : модуль чата, денежный модуль, модуль меню и т.п. Скажем в модуле денег есть некая переменная типа *общий баланс* ( ну это и логично, что именно в этом модуле должна быть эта переменная ) . Рассматривая дальнейшую логику, нам оказывается требуется показать общий баланс например в модуле меню или в чате ( образно говоря ) . Однако, как уже было сказано вся логика денег - в денежном модуле. Вопрос : имеем ли мы право объявить в денежном модуле переменную *общий баланс* статической, чтобы из любого другого модуля можно было получить ее, если понадобится? Разговор идет именно о редких переменных, а не о каждой типа на всякий случай. Если же такая логика считается избыточной, то как в данном случае должна выглядеть нормальная архитектура?
__________________
Марк Tween |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 243
|
Как вариант, создать класс, в котором будут статические ссылки на каждый из модулей (если они конечно в единичных экземплярах).
|
|
|||||
|
[+4 06.05.14]
|
Они в единичных это понятно. Но дело то не в том,
Цитата:
SomeClass.someVar ? Зачем создавать еще класс чтобы хранить в них ссылки, если мне нужна всего лишь 1 переменная ? Вообщем я скорее спрашиваю, такая архитектура нормальна или нужно меньть подход?, но как?
__________________
Марк Tween |
|
|||||
|
Lorem ipsum
|
Вот все ругают MVC, как "неуместную головомойку" при создании игр, а там как раз таких проблем не возникает. Не надо было бы никаких статиков. Просто всем заинтересованным видам/контроллерам выдается ссылка на некий PointsModel (можно ограничить интерфейсом), в котором есть, например, геттер totalPoints.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Цитата:
|
|
|||||
|
[+4 06.05.14]
|
Цитата:
__________________
Марк Tween |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Насчёт темы топика: я обычно вывожу подобные данные в один какой-то общий класс, который состоит из статических полей, которыми пользуются несколько модулей.
Но по конкретному примеру - скорее бы просто писал ссылку на модуль денег в модуле чата и меню. |
|
|||||
|
Lorem ipsum
|
MainModel содержит _pointsModel:PointsModel (есть геттер pointsModel)
Модули MainMenu и Chat получают ссылку на mainModel.pointsModel в конструктор, где она сохраняется в _pointsModel:PointsModel. После этого можно в любой момент взять _pointsModel.totalPoints.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Цитата:
|
|
|||||
|
[+4 06.05.14]
|
Zebestov я тебя понял именно так :
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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|