Russian Qt Forum

Qt => Вопросы новичков => Тема начата: derik от Апрель 24, 2018, 20:20



Название: Хранение данных
Отправлено: derik от Апрель 24, 2018, 20:20
Добрый день!
Я опять с глупыми, для меня, вопросами. прочитан Шлее и Шилдт, но ответа я для себя не увидел - ткните пожалуйста.
нужно следующее: в программу будет подгружаться данные из экселя и я не знаю как их хранить. через абстрактные классы? модель данных? эти данные, сейчас, я храню в глобальных массивах, почитал и понял что это не совсем верно. где и как мне их хранить?


Название: Re: Хранение данных
Отправлено: ssoft от Апрель 25, 2018, 08:20
Нет и не может быть никаких правил на этот счет, все зависит от контекста задачи.
Если программа выполняет один тривиальный вид деятельности, то вполне оправдано реализовать все в глобальных переменных и методах.
Если предполагается более сложные манипуляции, например, сразу с несколькими документами, или взаимодействие с пользователем, или параллельные вычисления, или ...
То в каждой из этих задач естественным образом возникают абстракции, которыми удобнее манипулировать, нежели глобальными массивами и методами.
Причем это все субъективно!

Если же имеется желание реализовать все в рамках ООП подхода (есть и другие), то нужно сначала сформировать объектно-ориентированную модель.
Нужно выделить абстракции, которыми предполагается манипулировать и определить между ними ассоциативные взаимосвязи.
Обычно, в качестве абстракций выступают понятия, которые произносятся в полном описании задачи.

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

В этой задаче может быть, например, так:
В программу подгружаются (абстрактный загрузчик) данные (абстрактный документ) из экселя (эксель загрузчик, эксель документ) ...



Название: Re: Хранение данных
Отправлено: derik от Апрель 25, 2018, 08:55
дада...большой объем данных, и работа с пользователем. спасибо, то что нужно, значит правильно я все понял!
Еще раз спасибо, буду рыть дальше!