code4Better Ответов: 1

Дизайн C# для проекта winform


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

Одна из моих мыслей состоит в том, чтобы создать вспомогательный файл для этого конкретного пользовательского интерфейса и выполнить бизнес-логику в вспомогательном файле, а затем просто вернуть данные, необходимые для отображения каждого элемента управления. Таким образом, я могу избежать отображения логики из бизнес-логики.

Просто хотел узнать, есть ли какие-либо подходящие шаблоны проектирования для этого сценария? Или у нас может быть лучший дизайн, кроме использования метода helper file, как было сказано ранее?

Что я уже пробовал:

Одна из моих мыслей состоит в том, чтобы создать вспомогательный файл для этого конкретного пользовательского интерфейса и выполнить бизнес-логику в вспомогательном файле, а затем просто вернуть данные, необходимые для отображения каждого элемента управления. Таким образом, я могу избежать отображения логики из бизнес-логики.

P Conny M Westh

Вы можете использовать стратегию с источниками данных в логическом классе и подключать их к каждому элементу управления в графическом интерфейсе формы.

Вы думали о MVVM?

code4Better

Спасибо, Конни.
Я подумал о MVVM. Поскольку я использую winforms, а не WPF MVVM, не уверен? Я знаю, что могу достичь этого с помощью INotifier и связать его. Я думаю, что мне, возможно, придется разработать логический класс для каждого элемента управления?

1 Ответов

Рейтинг:
1

RickZeeland

То ФАСАД шаблон может представлять для вас интерес:
Узор фасада - Википедия[^]
Это один из паттернов "банды четырех".:
Шаблоны Проектирования - Википедия[^]
Вы уже поняли большую часть этого, упомянув класс "помощник".

Существует также более "handson" пример, доступный на CodeProject:
Шаблон Проектирования Фасад (С#)[^]


code4Better

Я проверю это. Спасибо, Рик.