C # GUI и использование делегата в качестве уровня абстракции - PullRequest
5 голосов
/ 14 сентября 2011

Я пишу тестовое приложение для веб-сокетов, которое будет иметь графический интерфейс для отправки различных команд через веб-сокет. Вместо того, чтобы упаковать весь управляющий код (построение сообщения, форматирование, управление) в обратные вызовы для различных элементов управления, я рассмотрю вопрос о том, чтобы каждый обратный вызов элемента GUI (например, onClick) отправлял событие делегату, который может его обработать. Таким образом, графический интерфейс будет отделен от любого управляющего кода. Это «нормальный» дизайн или есть другая «лучшая практика» для разделения двух частей.

Примером может служить элемент управления ТВ-тюнером - пользователь может ввести номер канала через текстовое поле, которое не будет действовать, пока они не нажмут кнопку «Настройка». Метод onClick может извлечь номер канала из текстового поля и отправить делегату событие doTune (канал), чтобы это произошло.

Мысли / советы приветствуются.

Спасибо, п.о.

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Это действительно нормальный дизайн. Лично я не пойду на вызов event , подойдет обычный вызов статического класса SocketCommands.

1 голос
/ 14 сентября 2011

Это действительно очень разумный дизайн - вы продвигаете хорошее разделение проблем между уровнем представления (UI) и бизнес-уровнем (сценарии транзакций, доменные службы и т. Д.).

Итакчтобы ответить на ваш вопрос, да, это вменяемый дизайн:)

Что касается мыслей / советов, это было бы темой для programmers.stackexchange.com, а не здесь ..

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