vserd
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору spike преймущества ОО проявляются на средних и выше проектах. Облегчается анализ, проектирование, и потом программирование программ. Увеличивается надежность кода путем локализации, наследования, тестирования. Уменьшаются затраты, правда только начиная со второго проекта, где можно использовать соответствующие классы. ОО возникло как ответ на возрошую сложность программ, и ограниченость человеческих возможностей. Цитата: Просто я никак не могу понять как классы применить для своих программ. Пишу пока C++Builder, пока, потому что новее 6 версии билдера не будет, а переходить пока не знаю на что, но что это будет Си(С++, С#) думаю будет 99%. Так вот хочется понять, выгоду на примерах, причем реальных, а не понятных? | Думай, читай, смотри код. Пока не созрел. Вернее, IMHO, у тебя не было проекта который большой/сложный. Который нужно сопровождать. После такого проекта все что описано по ОО проектированию, анализу и тем более программированию становится ясным. Все становится на места и начинаешь понимать все книжки которые прочитал по ОО. Как пример работы с базой данных. Пусть есть у нас класс который ответственен за хранение инфы о предприятиях и людях. нужно хранить инфу полное наименование, краткое наименование, Банковские реквизиты, адрес, телефон(ы) для предприятий. Фамилию имя отчество, адрес, телефон для физического лица. Пускай у нас данные храняться в таблицах Objects (краткое имя, ID) (для облегчения поиска) Person (ID, фамилия, имя, отчество, адрес) Org (ID, полное наименование, Банковские реквизиты, адрес) Phones (ID, SubID, номер телефона) Все объекты которые мы хотим хранить в БД должны писать себя в Objects в обязательном порядке, и в другие таблицы по необходимости. Я не буду обсуждать нормализацию, для одной задачи это может быть нормльная структура, для других не очень. Пускай у нас есть три класса. иерархия DBObject->Person DBObject->Org 1. DBObject - базовый класс записывает себя в Objects 2. Person - записывает себя в Person, Phones 3. Org - записывает себя в Org, Phones Тебе не нужно занть из скольких мест ты вычитываешь (и восколько вставляешь) данные. Если ты хочешь ввести другой класс ты должен отнаследоваться от DBObject и тебе уже не важно как этот объект сохранит себя в Objects, ты занешь что сохранит в обязательном порядке. Тебе достаточно отладить DBObject один раз и он будет себя вести везде одинаково. Если тебе нужно добавить другой телефон к физическому лицу, то тебе не прийдется (при работе без объектов) лопатить половину программы выискивая а где же уменя (или у этого идиота за которым мне приходится хвосты подчищать) есть доступ к БД. Потому что нужно проконтролировать все эти места, и не важно что доступ к двум телефонам у меня в одной лишь форме, сохраняюсь я в 10 местах и не факт что правильно. А так вызвал MyPeron.save и даже не занаю что для этого снеслось пол базы в одном месте и вставилось в другом. |