шаблоны проектирования для мессенджера - PullRequest
0 голосов
/ 06 июля 2010

Я хотел бы использовать некоторые шаблоны проектирования для мессенджера. Функции мессенджера:

  1. * Логин пользователя на сервере
  2. * Загрузить друзей в список контактов
  3. * Прием / отправка сообщений
  4. * Выйти из системы пользователя

Я новичок в разработке шаблонов, поэтому мне нужен совет. Какой из паттернов подходит для этой ситуации?

Я думаю о шаблоне Proxy.

Ответы [ 2 ]

2 голосов
/ 07 июля 2010

Это довольно сложное дело для начинающих.Я бы порекомендовал заглянуть в WCF (Windows Communication Foundation) и посмотреть шаблон публикации / подписки.Это в основном шаблон наблюдателя.

Я бы выполнил эту задачу, подписавшись (войдя в систему) всех клиентов (пользователей) на основную службу, чтобы получить события друзей (вход, выход из системы, запросы друзей и т. Д.).Сервер также может быть рукопожатием между клиентами, которые хотят общаться друг с другом.

Когда клиенты фактически инициируют чат, каждый клиент может предоставить собственную услугу pub / sub.Тогда каждый клиент может подписаться друг на друга, обеспечивая, таким образом, события в реальном времени, инициирующие друг друга, вместо того, чтобы передавать через сервер.

Это только одно предложение, так как есть много способов сделать это.Надеюсь, это укажет вам правильное направление.Но WCF - это лучший путь ИМХО.

Шаблоны, используемые в этом решении:

  • Pub / Sub (Observer)
  • Singleton
  • Proxy
  • .Net ProviderШаблон (комбинация синглтона, фабрики и стратегии).
0 голосов
/ 09 июля 2010

Принципы проектирования и шаблоны проектирования ОО

* Leveraging OO design patterns which adhere to best practices
* Determining the appropriate design patterns for requirements
* Singleton
* Strategy
* Template
* Proxy
* Observer

Шаблоны проектирования и Enterprise Java

* Analyzing goals of Enterprise Java applications
* Planning for distributed applications
* Communicating between JVMs
* Implementing Remote Method Invocation

Построение бизнес-уровня Моделирование сущностей и вариантов использования

* Realizing an application's domain model
* Business Object
* Application Service

Снижение влияния известных узких мест производительности

* Eliminating inter-tier dependencies
* Service Facade
* Session Facade
* Business Delegate

Нахождение объектов

* Singleton
* Factory
* Inversion of Control
* Service Locator

Реализация бизнес-логики с помощью сессионных компонентов

* Injecting services to business logic using Session Beans
* Conversing with client using Stateful Session Beans

Связь со службами сообщений

* Decoupling client interaction with the Java Message Service (JMS)
* Simplifying JMS
* Transmitting and receiving messages with JMS
* Message-driven beans

Управление ресурсами на уровне интеграции Абстрагирование слоя данных

* Implementing effective Data Access Objects (DAO)
* Highlighting difficulties associated with Object/Relational Mapping
* Analyzing persistence technologies: Hibernate, JPA, EJB 3.0
* Optimizing data transfer using the Transfer Object Pattern

Веб-сервисы

* Exposing Beans as Web Services with annotations
* Web Service Broker pattern

Эффективная обработка транзакций

* Considering local and global transaction needs
* Selecting optimistic or pessimistic locking

Структурирование уровня представления Разделение логики управления и представления

* Realizing the role of JSPs and servlets
* Constructing Model View Control (MVC) architectures

Планирование и реализация сложных рабочих процессов

* Front Controller
* Dispatcher View
* Service to Worker

Локализация разрозненной логики

* Improving maintainability of algorithms
* Writing modular JSPs
* Intercepting Filter
* View Helper
* Composite View
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...