Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Посоветуйте паттерн (многие к одному) (http://www.flasher.ru/forum/showthread.php?t=154964)

djyamato 25.04.2011 22:12

Посоветуйте паттерн (многие к одному)
 
Здравствуйте
Посоветуйте, пожалуйста, шаблон проектирования для такой вот задачи:

есть модуль который меняет поведение остальных
когда они (остальные) что-то делают, нужно чтобы он не смог этого сделать
Это настройки, там выбор языка, при выборе языка все остальные подгружают соответственные хмл-ки с нужным языком.
Если кто-либо из остальных передает что-либо на сервер (картинку закодированную или сохраняет свой хмл или как-то работает с сетью), у модуля настроек не должно быть возможности выбрать язык пока все остальные не скажут ему что они освободились (закончили работу с сетью)

Что-то типа Observer но наоборот

КорДум 25.04.2011 22:36

Синглтон же, не?

Psycho Tiger 25.04.2011 22:36

Это модель )

djyamato 25.04.2011 22:38

Цитата:

Сообщение от Psycho Tiger (Сообщение 992094)
Это модель )

Не понял :(

КорДум, мне бы что-нибудь поавтоматичнее, ато это получится что у синглтона спрашивать все время или как ?
Не, гоню, и правда, скорее всего - синглтон :)

Wolsh 25.04.2011 22:47

А обратная ситуация для этого Триггера рассматривается? Многие - могут начинать свою работу, пока не закончил Один?

Добавлено через 16 минут
Просто этот триггер можно организовать как в одну сторону, так и в другу. То есть
1) все работники регистрируют себя в классе Триггера и постоянно бомбят его событиями изменения своих состояний ("я работаю", "я свободен"). Триггер анализирует массив при поступлении каждого такого события и меняет свое состояние на "можно"/"нельзя". Плюс может сам посылать события при изменении своего состояния ("И" от входов).
2) в момент, когда "один" решил поработать, он опрашивает всех "многих". Им же вменяется иметь геттер "свободен/занят" и менять его. Требуется та же самая регистрация, но по Интерфейсу яТриггер (требующему реализацию геттера).
Второй вариант мне видится приятней в своей спартанской строгости.

djyamato 25.04.2011 23:19

Wolsh, нет, не рассматривается ситуация такая
у меня ситуация номер (1)
Это настройки, смена языков для модулей
Многие могут начинать свою работу пока не закончил один, они вообще друг про друга не знают

Смысл в том, чтобы пользователь мог менять языки у данных(data) модулей на лету, НО не во время, когда один из модулей работает с сетью, чтобы не получилось так, что в одном из модулей сменился язык, а другой пока занят своим делом, если его побеспокоить, он не сохранит свою выполненную работу и загрузит другие данные, лажа.

alatar 26.04.2011 11:44

Что-то я не пойму, зачем вообще, в данной ситуации, блокировка? Ну, сменили модулю локаль, почему он должен сразу бросать все и ломиться за новыми данными? Пусть себе работает, освободится — загрузит.

Psycho Tiger 26.04.2011 18:12

В парадигме MVC это модель. Которая очень старшая. Настолько старшая, что даже контроллеры слушаются её и не могут ничего сделать, пока туда данные не попадут.
Так чем не подходит обзервер?

djyamato 26.04.2011 20:26

Цитата:

Сообщение от alatar (Сообщение 992190)
... Пусть себе работает, освободится — загрузит.

И правда, я как-то об этом не подумал, точнее, думал но отпугнула неболшое усложнение поведения модулей.
Это получится что модуль делает себе свои дела, произошла смена локали, он об этом узнал, далее, когда закончил работу свою, меняет локаль, тем более про текущую локаль он может спросить у синглтона настроек всегда, ему просто нужно знать, что произошло событие смены локали.

Цитата:

Сообщение от Psycho Tiger (Сообщение 992296)
Так чем не подходит обзервер?

то есть, каждый модуль это также обзервер ?

cleptoman 26.04.2011 20:29

контроллеры ее не слушаются, а слушают и принимают решения. а вообще, да, мне кажется моделька.


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

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