@Vlad4573

Как выбрать структуру 2d программы?

Нужен совет программистов. Я начал писать программу на c#.
Суть программы - составить схему пневматический системы из элементов.
Задать характеристики элементов и программа расчитает выходные параметры.

В процессе написания понял что у меня уже не программа, а комок макарон.

Почитал, про патерны. Применил некоторые, но особо лучше не стало.

Может мне кто нибудь подсказать, есть ли какие нибудь типовые структуры программ с чётким разделением графической или не графической частей?
Или в таких случаях нужно использовать "движок" (про них я мало, что узнал).

Может где нибудь можно найти похожие проекты.
Если у кого нибудь есть информация по литературе по данному вопросу, буду очень презнателен если вы ей поделитесь.
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 3
Adamos
@Adamos
Я создал класс объектов, (например теплообменник) он имеет свойства на основании которых производится расчёт (например КПД) . И свойства на основании которых происходит отрисовака ( например положение при отображение (коардинаты x, y)) не уверен, что я сделал корректно.

Создаете абстрактный класс "элемент расчета" с общим для всех элементов интерфейсом. Создаете базовый класс "графический элемент" с общим интерфейсом рисования.
Создаете класс "элемент рисования", свойства которого - координаты и ссылки на элемент расчета и соответствующий ему графический элемент.
Отрисовщик имеет массив элементов рисования, обходит их и один за другим отрисовывает, вызывая нужные функции графического элемента, который может обратиться за параметрами к элементу расчета. Важно, что элемент расчета ничего не знает ни о каком рисовании, а графический элемент знает не больше, чем нужно для отрисовки именно его картинки.
Все элементы расчета и рисования представлены в виде классов-наследников тех абстрактных классов и обрабатываются единообразно - отрисовщик вообще не видит между ними различий, они убраны в класс графического элемента.
Примерно так...
Ответ написан
tsarevfs
@tsarevfs
C++ developer
Попробуйте описать из каких объектов состоит ваша программа.
Нарисуйте хоть какую-то схему из ваших классов (я использовал draw.io):
5d24716776b95972194416.png
Правильнее использовать UML, но это не обязательно.
Подумайте о пользовательских сценариях:
Как вы будете получать входные данные?
Есть ли иерархия элементов (элементы из других элементов)?
После этого можно будет уже как-то смотреть и улучшать какие-то части.
Ответ написан
Комментировать
@AlexSku
не буду отвечать из-за модератора
Вроде, на C# уже сделана Scada+
Там, правда, нет расчётов, там графический интерфейс и связь с контроллерами.
История, как она проектировалась.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы