Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2023, 08:48
bubaeshka bubaeshka вне форума
Прохожий
 
Регистрация: 20.02.2016
Сообщения: 13
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Архитектура Desktop приложения. Проектирование классов

Хотя и имею профильное образование, программирую под Win довольно редко (в основном ПЛК, а ещё чаще отвёртки и бокорезы), да и собственно, кроме Delphi, особо то и не знаю ничего. Возникла необходимость написать новое приложение, а так как с годами, мне кажется, что я тупею, решил посоветоваться. Последнее на чём я писал, это Delphi 7, несколько лет назад, причём когда писал, помню что сильно матерился, что не могу сделать так как я хочу, потому что это реализовано только в новых версиях делфи. Сейчас вот скачиваю 11 Community Edition.

Собственно задача: дан некий текстовый файл с данными для станка. В этом файле, в строковом виде, существует список изделий, а в каждом изделии, соответственно, список операций, осуществляющимися над ним. Необходимо перестроить файл, в соответствии с оптимизацией (раскроем) изделий. Также была необходимость пересчитывать некоторые операции, содержащиеся в изделии (первая версия программы написанная примерно за месяц неспешного труда, с постоянным отвлечением на другие задачи, обрастала мясом года полтора ещё сверху). То есть я уже делал одну такую программу, но сейчас возникла задача сделать такую же под другой станок и соответственно формат файлов.

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

Как я сделал старую программу: изначально, при открытии файла, создаётся объект при помощи конструктора класса TФайл, затем в этом же конструкторе файл парсится. И в поле типа TObjectList класса TФайл создаются объекты класса TИзделие. В свою очередь в классе TИзделия, есть поле типа TObjectList, которое содержит в себе объекты класса TОбработка. Получается такая иерархическая структура связанная через TObjectList. В каждом классе, естественно, помимо поля TObjectList, существуют вспомогательные и не очень, поля относящиеся к каждому конкретному классу, какие то размеры, списки TStringList с самими кодами программы и какими то служебными полями, также есть методы оперирующие данными, находящимися в этих классах. Например процедура оптимизации, содержится в классе TФайл, так как она выполняет перестановки в "массиве" изделий, который содержится внутри класса TФайл, в его поле TObjectList. Есть ещё несколько служебных - вспомогательных классов (например списки раскраиваемых заготовок), которые не относятся напрямую к классу изделий, файла, и обработок - они отделены и не входят в общую структуру. В итоге получается такой мегаобъект типа ТФайл, внутри него в списке объекты изделия, внутри которых объекты обработки.

И собственно вопросы:

1. Насколько я выбрал удачную архитектуру приложения? Можно ли сделать лучше?

2. Какой класс выбрать, с учётом более современных возможностей Делфи 10/11, в качестве контейнера объектов, или остаться на TObjectList?
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter