Шаблоны проектирования с приложением чата - PullRequest
0 голосов
/ 19 ноября 2011

Я делаю заявку в чате. Моя проблема с обновлением лежит здесь: У меня есть класс Core, в котором хранится экземпляр компонента.

При получении нового сообщения ядро ​​вызывает метод Component и обновляет экран.

Когда новое сообщение должно быть отправлено (набрано на панели компонентов), как Компонент уведомит Ядро?

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

1 Ответ

2 голосов
/ 19 ноября 2011

По сути, шаблон наблюдателя всегда удобно использовать, если у вас есть источник данных и получатель, и вы хотите обеспечить слабую связь между ними.

Если ваш класс Core хранит непосредственно экземпляр вашего компонентавам не нужен дополнительный шаблон наблюдателя между ними, так как класс Core может напрямую вызывать методы вашего компонента, верно?

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

Но на самом деле, я думаю, что это главная проблема проектирования в вашей архитектуре, вы должны использовать MVC для таких приложений:

MVC

В этом случае вам придется разделить Ядро на Контроллере (для обработки взаимодействий пользовательского интерфейса, т.е. отправки / получения сообщений) и Модели (для хранения сообщений и метаданных., может быть, логика приложения).Ваш Компонент будет классом View.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...