![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]() ![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Читал я некоторое время назад про вяского рода декомпозицию и т.п. Но как-то всё бестолку.
вот реальная задача: Нужно сделать несложную программку, для получения текстовой конструкторской документации из фалов САПР. Из файла эл.схемы - перечень элементов к ней, из файла печатной платы - спецификацию. Программа задумана с концепцией "Проект", в проект входит список исходных файлов САПРа, см. снимок. Слева панель - дерево проекта, в проект можно добавлять связанные с ним файлы. Щёлкнув по имени файла в дереве, в MDI-области появляется виджет представляющий информацию (например, в виде таблицы) о файле (перечень/спецификация). В качестве файла проекта выбран файл БД SQLite. Для получения из файла схемы её перечня элементов и из файла платы - спецификации, файл анализируется некой специальной функцией (её код в данный момент интереса не представляет). Дак вот хотелось бы, чтобы кто-нибудь расписал на примере этой задачи, что и как декомпозировать. Какие классы должны получится и как они должны взаимодействовать друг с другом. Т.е. не просто соображения "как бы я сделал". А как это всё формально предлагается делать, разного рода теоретиками ООП. |
|
|
![]() |
BRE |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Давай пока забудем про GUI, считаем что его нет.
![]() Какие сущности есть в этой задачи. Это конечно сам проект (Project). Публичный конструктор этого класса может создавать только пустой проект. Для загрузки/сохранения проекта можно предусмотреть специальную сущность или сущности, например ProjectLoader/ProjectSaver. Наследники этих классов можно начить загружать/сохранять проекты не только в SQLite-файлы, но и в XML-файлы или в простые текстовые файлы на удаленных серверах. Проект по сути будет являтся коллекцией документов (Document). Можно сделать своих наследников для каждого документа (SpecDocument, ItemListDocument) или сделать специальные загрузчики, которые будут загружать разные типы данных в объект-документ. Следующая сущность это источники данных (Source). Семейство классов наследников Source, умеющие загружать нужные данные из разных источников. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 17.5.2025, 20:44 |