Monostate, в моих глазах, не шаблон, который вы, вероятно, реализовать на уровне приложений, но может быть полезно на уровне инфраструктуры. This comment on Alex Martelli's presentation of the pattern in Python - иллюстративный пример.
Рассмотрите сценарий удаленного доступа DCOM или .NET, где у нас есть объект на сервере, представляющий Person с именем Bob. Боб не одинокий, потому что Боб не единственный Человек. Но несколько клиентов могут разговаривать с Бобом одновременно. В каждом случае клиент не имеет прямой ссылки на Боба (который находится в другом адресном пространстве или на другом компьютере), но вместо этого имеет прокси-объект. И этот прокси-объект является локальным для этого конкретного клиента.
Таким образом, у нас есть несколько прокси-объектов, каждый из которых имеет различный идентификатор, но каждое проксирование состояния и поведения Боба объекта сервера - и, следовательно, совместного использования состояния и поведения. Если клиент Алиса обновляет состояние Боба (вызывая метод на своем прокси-объекте), тогда клиент Кэрол увидит изменения в поведении Боба (когда она называет методы на своем прокси-объекте). Прокси-объекты Алисы и Кэрол не имеют одинаковый идентификатор объекта, но do имеют одинаковое состояние и поведение: оба представляют собой Боб. Два прокси-сервера демонстрируют шаблон Monostate.
(The whole thread стоит читать для более детального обсуждения, но выше для меня было где-то щелкнуло в фокусе.)
Никогда не слышал картины monostate. Однако я полагаю, что он может использоваться для общего ресурса, такого как Singleton. Ссылка, приведенная ниже, может служить хорошим примером, избегая более сложного шаблона, такого как Observer: http://www.devx.com/getHelpOn/10MinuteSolution/16361 –
См. Также http://c2.com/cgi/wiki ? MonostatePattern – trashgod