crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> ООП, структура программы
Litkevich Yuriy
  опции профиля:
сообщение 19.2.2011, 11:18
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Читал я некоторое время назад про вяского рода декомпозицию и т.п. Но как-то всё бестолку.

вот реальная задача:
Нужно сделать несложную программку, для получения текстовой конструкторской документации из фалов САПР.
Из файла эл.схемы - перечень элементов к ней, из файла печатной платы - спецификацию.

Программа задумана с концепцией "Проект", в проект входит список исходных файлов САПРа, см. снимок.
Прикрепленное изображение

Слева панель - дерево проекта, в проект можно добавлять связанные с ним файлы. Щёлкнув по имени файла в дереве, в MDI-области появляется виджет представляющий информацию (например, в виде таблицы) о файле (перечень/спецификация).
В качестве файла проекта выбран файл БД SQLite.

Для получения из файла схемы её перечня элементов и из файла платы - спецификации, файл анализируется некой специальной функцией (её код в данный момент интереса не представляет).

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

Т.е. не просто соображения "как бы я сделал". А как это всё формально предлагается делать, разного рода теоретиками ООП.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Rocky
  опции профиля:
сообщение 19.2.2011, 21:24
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(BRE @ 19.2.2011, 16:58) Link
предусмотреть специальную сущность или сущности, например ProjectLoader/ProjectSaver.

Имхо тут лучше один класс сделать - ProjectManager, который будет отвечать за загрузку проектов, сохранение в разных форматах и пр... И вообще он будет содержать коллекцию самих проектов. И только он должен знать что с каждым проектом делать. А MainWindow должен иметь к нему доступ и знать как этот проект отображать. Причем инстанс ProjectManager д.б. один - т.е. сделать его наследником от синглтона например.

Сообщение отредактировал Rocky - 19.2.2011, 21:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 9.12.2025, 8:34