Шаблон проектирования для эмулятора сервера - PullRequest
0 голосов
/ 19 марта 2010

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

Мой сокет сервера всегда будет прослушивать сокет клиента. Хотя некоторое клиентское сообщение приходит из клиентского сокета, эмулятор сервера будет отвечать клиенту через сокет.

ответ - код ответа. «00» будет описывать успешно обработанное сообщение-запрос, а другой код ответа ожидает, что «00» будет указывать на наличие ошибки при обработке запроса.

На сервере имеется некоторый пользовательский интерфейс, который содержит параметр ответа проверки, например. код ответа интервал ожидания

  1. Пока сервер хочет ответить клиентскому сообщению, код ответа, взятый из формы ответа входного параметра UI
  2. проверьте интервал времени ожидания, он создаст поток ожидания и интервал, взятый из интервала времени ожидания, введенного из пользовательского интерфейса.

Я реализовал функцию, но я создаю ее в одном классе. Я чувствую это так отстой. Можете ли вы предложить мне, какой класс / интерфейс я должен создать для рефакторинга моего кода.

1 Ответ

1 голос
/ 19 марта 2010

Необходимость рефакторинга кода действительно зависит от того, какую задачу выполняет ваш сервер на основе запроса клиента. Если это что-то простое, то один класс вполне может быть лучшим дизайном. Если он делает что-то более сложное, то вы можете переместить различные операции, которые могут быть выполнены, в различные классы обслуживания. Если ваши результаты стандартны, вы можете создать объект (может быть enum?) Для их описания.

Это подход, который я использовал в одном из моих собственных приложений. Сервер обрабатывает только ввод-вывод между собой и клиентом. Когда клиент отправляет сообщение, сервер анализирует его в стандартном формате «операция» объекта. Этот объект затем передается объекту менеджера, который находит соответствующий «объект обслуживания запроса». Этот объект затем выполняет реальную работу. Когда он закончен, он генерирует возвращаемый объект, который описывает состояние / результаты объекта. Затем он берется сервером и соответствующим образом форматируется для отправки клиенту по сети.

Надеюсь, это даст вам некоторые идеи относительно того, что может подойти для вашего приложения.

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