Шаблон дизайна, подходящий для мессенджера, такого как ICQ, Skype, Pidgin .. [WPF-C #] - PullRequest
1 голос
/ 01 ноября 2010

Мне нужно заранее, я новичок в дизайне.Я занимаюсь разработкой мессенджера типа ICQ, Skype, Pidgin - это школьный проект, он не работает с ICQ, протоколом Skype, работает с собственным протоколом.

Этот мессенджер предоставляет эту функциональность {методы}:

* Вход на сервер * Загрузка списка контактов * Отправка сообщения * Получение сообщения * Отправить комментарий * LogOff

Эти методысгруппированы в один класс с именем XCommands.

Данные пользователя (идентификатор, пароль, файлы cookie, некоторые настройки) сгруппированы в класс с именем XAvatar.

Все методы класса XCommads принимают в качестве типа объекта аргумента XAvatar+ другие аргументы.

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

Может кто-нибудь посоветовать, какой шаблон дизайна подойдет, какой-нибудь UML.Большое спасибо за любой совет.

1 Ответ

0 голосов
/ 02 ноября 2010

Помните, что шаблон проектирования - это распространенный способ решения общей проблемы:

  • "как мой код может использовать разные алгоритмы при разных обстоятельствах во время выполнения?"(шаблон стратегии) ​​
  • "как я могу реализовать сложную серию поведений, чтобы определенные подклассы могли переопределять определенные шаги в серии, но наследовать другие?"(шаблонный шаблон)

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

  • "какой шаблон следует использовать длядизайн объекта пользователя? "(слишком детально - на самом деле не указывает на общую проблему)
  • "какой шаблон я должен использовать для создания клиентской программы IM?"(слишком абстрактно - шаблоны проектирования решают общие специфические проблемы, а не целые разработки программного обеспечения)

Вы хорошо начали - вы представили свои бизнес-данные в виде объектов (или в данном случае 1 объект: XAvatar) и вы определили служебный API (XCommands).Продолжая дизайн / разработку с этого момента, вы столкнетесь с некоторыми более специфическими проблемами или проблемами.Весьма вероятно, что некоторые из них будут общими проблемами, с которыми сталкивались многие другие разработчики: ТО , когда шаблоны проектирования помогут вам.

...