ООП в действии :)
От: da_007  
Дата: 13.11.07 09:54
Оценка:
Добрый день.

В общем, ситуация следующая: весь прогрессивный мир использует ООП, поэтому хочется от старой школы переходить к новой Теоретическая база присутствует, а вот практическая — на нуле, соответственно, пытаюсь переделать рабочие проекты на "с использованием классов и объектов", дабы набраться опыта, и ощутить всю полезность этого самого ООП

Рассмотрим конкретный пример. Есть система, нужно написать системный монитор, который собирает информацию, и отображает статистику. Конкретнее: более 50 разных параметров, которые делятся на пять-шесть групп (скажем... десяток датчиков температур, загрузка пяти процессоров, загрузка оперативки, загрузка шести накопителей, загрузка двух сетевух и т.д.), в общем, датчики можно объединить в группы по типу информации. Важное уточнение: например, температурные датчики... Они не "по одному", они "висят" группами, скажем, на трех портах, т.е. нельзя получить температуру только одного датчика, можно прочесть температуру только группы датчиков целиком.

Задача — мониторить систему (разные датчики получают информацию с разным интервалом), выводить текущую информацию, собирать статистику, рисовать графики, причем "рисовать график или нет" — определяется чекбоксом, плюс, есть "групповые чекбоксы" — т.е., например, "не рисовать температуры вообще)... Собственно, проект готов, все отлично работает, но... "А почему вы не используете ООП?"

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

Следующий непонятный МНЕ момент... Вот график каждого датчика — рисуется собственным цветом... И рисование, как я уже говорил выше, зависит от конкретного чекбокса... Как бы All поступил в этом случае? Создал 50 классов датчиков, и назначение вручную каждому классу цвета и чекбокса? Точнее, что вручную — это понятно, как же иначе? Но тут такой момент меня интересует... Вот сейчас эта задача решена без ООП, т.е. идет 50 перечислений структур (кстати... фактически, структура — есть класс, правильно?), и в каждой структуре определяется массив точек для графика, цвет, чекбокс (фактически, это уже какое-то ООП, верно?) Но в то же время, перерисовка графиков происходит по таймеру, который "вручную" перебирает все эти 50 структур: рисовать, или нет, а если рисовать, то каким цветом... Думается мне, что с помощью ООП этот вопрос можно решить красивее?

Подводя итоги поста: хочется получить оптимизацию (т.е. выгоду) в разработке данного ПО от использования ООП (как при изменении готового проекта, так и "подготовка для изменений в будущем" — сейчас придется слишком много вносить изменений при добавлении нового датчика)... Это реально в нашем случае?

Хочу попросить прощения за некоторый сумбур
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.