![]() |
Посоветуйте паттерн (многие к одному)
Здравствуйте
Посоветуйте, пожалуйста, шаблон проектирования для такой вот задачи: есть модуль который меняет поведение остальных когда они (остальные) что-то делают, нужно чтобы он не смог этого сделать Это настройки, там выбор языка, при выборе языка все остальные подгружают соответственные хмл-ки с нужным языком. Если кто-либо из остальных передает что-либо на сервер (картинку закодированную или сохраняет свой хмл или как-то работает с сетью), у модуля настроек не должно быть возможности выбрать язык пока все остальные не скажут ему что они освободились (закончили работу с сетью) Что-то типа Observer но наоборот |
Синглтон же, не?
|
Это модель )
|
Цитата:
КорДум, мне бы что-нибудь поавтоматичнее, ато это получится что у синглтона спрашивать все время или как ? Не, гоню, и правда, скорее всего - синглтон :) |
А обратная ситуация для этого Триггера рассматривается? Многие - могут начинать свою работу, пока не закончил Один?
Добавлено через 16 минут Просто этот триггер можно организовать как в одну сторону, так и в другу. То есть 1) все работники регистрируют себя в классе Триггера и постоянно бомбят его событиями изменения своих состояний ("я работаю", "я свободен"). Триггер анализирует массив при поступлении каждого такого события и меняет свое состояние на "можно"/"нельзя". Плюс может сам посылать события при изменении своего состояния ("И" от входов). 2) в момент, когда "один" решил поработать, он опрашивает всех "многих". Им же вменяется иметь геттер "свободен/занят" и менять его. Требуется та же самая регистрация, но по Интерфейсу яТриггер (требующему реализацию геттера). Второй вариант мне видится приятней в своей спартанской строгости. |
Wolsh, нет, не рассматривается ситуация такая
у меня ситуация номер (1) Это настройки, смена языков для модулей Многие могут начинать свою работу пока не закончил один, они вообще друг про друга не знают Смысл в том, чтобы пользователь мог менять языки у данных(data) модулей на лету, НО не во время, когда один из модулей работает с сетью, чтобы не получилось так, что в одном из модулей сменился язык, а другой пока занят своим делом, если его побеспокоить, он не сохранит свою выполненную работу и загрузит другие данные, лажа. |
Что-то я не пойму, зачем вообще, в данной ситуации, блокировка? Ну, сменили модулю локаль, почему он должен сразу бросать все и ломиться за новыми данными? Пусть себе работает, освободится — загрузит.
|
В парадигме MVC это модель. Которая очень старшая. Настолько старшая, что даже контроллеры слушаются её и не могут ничего сделать, пока туда данные не попадут.
Так чем не подходит обзервер? |
Цитата:
Это получится что модуль делает себе свои дела, произошла смена локали, он об этом узнал, далее, когда закончил работу свою, меняет локаль, тем более про текущую локаль он может спросить у синглтона настроек всегда, ему просто нужно знать, что произошло событие смены локали. Цитата:
|
контроллеры ее не слушаются, а слушают и принимают решения. а вообще, да, мне кажется моделька.
|
Цитата:
|
| Часовой пояс GMT +4, время: 23:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.