Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » В чем преимущество ООП ?

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

dikun

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD

Цитата:
Попробуй написать нечто типа скринсейвера, в виде взрывающегося, рассыпающегося салюта. Будешь писать процедурно - упреешь, а если опишешь один пиксель как объект, движущийся по законам неким - то сможешь прорисовать хоть сколько этих объектов.

Dimonka

Цитата:
Пример откровенно плохой.

 
Я так понял, что ООП не покатит, потому что частиц-объектов слишком много? Тогда - паттерн Flyweight

Всего записей: 22 | Зарегистр. 16-06-2005 | Отправлено: 22:48 19-01-2006
Alex770

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я сейчас начинаю изучать основы ООП, до этого имел дело только с функциями. Вообщем-то я понимаю его плюсы, но никак не могу представить где это может пригодится, а кто-то, как я понял, на классах все программы пишет. Вот единственное могу представить это ООП в игре. Например класс оружее, из него можно наследовать объекты меч, топор и т. д. Ну а например в программе для работы с базами данных, где можно применить ООП?

Всего записей: 38 | Зарегистр. 01-05-2007 | Отправлено: 15:04 07-08-2007
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex770
А чем тебе ADO не база данных? Это всё построено на интерфейсах. Написание базы данных, если сущности сделать просто данными, то в написании будет куча одинакогого кода с небольшими расхождениями, а если сделать объектами то кода понадобится намного меньше и читать будет удобнее когда привыкнешь.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:17 07-08-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну а например в программе для работы с базами данных, где можно применить ООП?

Есть базовый класс документ, от него наследуется "платежка", акт выполненных работ, ведомость на зарплату и т.п. и т.д.
Если правильно реализовать, то все телодвижения при добавлении нового типа документа сводятся к минимуму. Кроме того, ООП очень хорошо ложится в основу интерфейса для отображения данных из БД.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 16:41 07-08-2007
aslav



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я сейчас начинаю изучать основы ООП, до этого имел дело только с функциями. Вообщем-то я понимаю его плюсы, но никак не могу представить где это может пригодится, а кто-то, как я понял, на классах все программы пишет. Вот единственное могу представить это ООП в игре. Например класс оружее, из него можно наследовать объекты меч, топор и т. д

 
 дело не только в настледовании. вот создал ты класс пистолет.
 
 а затем тебе надо в программе два пистолета разного калибра. как ты с функциями тут будешь работать ?
 
 а так - создал два объекта через конструкторы настроив и радуйся
 
 а с функциями увы тебе придется много постоянно думать что там внутри нее если она одна или опять городить пару функций
 
если грубо.
 
а вцелом - пока реально не будешь с этим работать - плюсов не поймешь.
 
личто я использую ооп только там где оно нужно. т.е. лично в моих проектах - почти нигде

Всего записей: 279 | Зарегистр. 02-03-2006 | Отправлено: 17:18 10-08-2007
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aslav
Это надо понимать так, что ты пока "плюсов не понял", потому как "реально не работал"? Можно наводящий вопрос: "Ну вот есть у меня fopen(). А если мне нужно одновременно два разных файла открыть?" А ведь stdio.h отнюдь не классы юзает...

----------
Одни с годами умнеют, другие становятся старше.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 22:44 10-08-2007 | Исправлено: Qraizer, 22:45 10-08-2007
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex770
Тут уже пару лет назад проскакивала ссылка на Буча. Прочитай. Написано просто отлично. После этого хватит одного небольшого проекта с объектами, чтобы открыть для себя великолепие ООП, а дальше и компонентно-ориентированного программирования.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 09:35 14-08-2007
aslav



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это надо понимать так, что ты пока "плюсов не понял", потому как "реально не работал"?  Можно наводящий вопрос: "Ну вот есть у меня fopen(). А если мне нужно одновременно два разных файла открыть?" А ведь stdio.h отнюдь не классы юзает...

 
 из пушки по воробьям не стреляют. к тому же С++ - язык почти умирающий, ниша для него все Уже и Уже. а использовать fopen вместо потоков только Архангельский учит.

Всего записей: 279 | Зарегистр. 02-03-2006 | Отправлено: 09:59 14-08-2007
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qraizer
Смотря как открыть, если один файл текстовый, а второй архив и тебе надо чтобы в визуальной среде авторы архиватора могли настроить так чтобы архив открывался как папка с вложенными файлами. Сейчас без ООП нет интеграции. Самое безумное место это comctl32.dll и то там используются сообщения, с которыми удобнее работать объектам.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:14 14-08-2007
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aslav
Это C++-то умирающий? Единственный в мире язык, который несмотря на то, что он программирования, изучается теоретиками (только зовутся они не филологами), как будто он естественный человеческий?? В котором делаются открытия, по исследованиям которого издаются труды, наверное даже защищаются диссертации??? И он, оказывается, умирающий! Ну ты дал. Скорее Windа умрёт, чем C++. Писать на плюсах - это не компонентами жонглировать, не каждому дано.
Ну и так, между прочим -  ты не ответил на вопрос.
delover
Я не об этом спрашивал. Я намекал, что stdio.h - это та же объектная концепция. Только реализована на языке (я имею в виду C, без плюсов), который не поддерживает ООП явно. Вообще, пост aslav-а, на который я отвечал 10-08-2007, мягко говоря ошибочен. Сразу видно, что человек действительно "не использует в ООП", как он и признался. Ибо просто не видит, "когда оно нужно". ООП - это не свойство языка, это философия и стиль. Объектно программировать можно хоть на ассемблере.

----------
Одни с годами умнеют, другие становятся старше.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 12:05 14-08-2007
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qraizer
Я, все же склонен согласиться с aslav. В свое время было море языков, которые были СУПЕР. Где они теперь. Все в этой жизни течет - все меняется. Вот прочитал про новые возможности C# 3.0 и пришел к выводу, что это все же интереснее чем С++. Хотя, может с выходом нового стандарта С++ тоже будет на уровне, только сильно уж он становится громоздким.
С другой стороны, скорость внедрения новых печенюшек в С# тоже скорее пугает. Слишком часто приходится менять принципы программирования. Хотя оно того, в общем то, стоит. Но это - тема отдельного разговора и священных войн.  
aslav

Цитата:
из пушки по воробьям не стреляют. к тому же С++ - язык почти умирающий, ниша для него все Уже и Уже. а использовать fopen вместо потоков только Архангельский учит

По моему опыту, не всегда потоки ввода-вывода эффективнее системных вызовов. Последние проще, что ли. Хотя в большинстве случаев потоки использовать правильнее.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 15:07 14-08-2007
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mickey_from_nsk
Да пожалуйста, соглашайся. Море СУПЕР языков высохло, остались лужицы, но личное мнение никто не отменял. Просто "личное мнение" принято помечать "ИМХО"-ой. Я б тогда не возмущался. Смайлик в первом моём ответе aslav-у недвусмысленно намекает на забавность его (наверное, ненамеренного) признания. Впрочем, он ещё и неадекватен, о чём я сказал в своём наводящем вопросе, и тему продолжил во втором посте. Ответный же его пост просто роняет мою челюсть на пол. "Супер" - может быть и слегка гиперболизированная приставка к языку программирования С++ (впрочем, не я его так назвал ) Однако я привёл факты, а не своё ИМХО. Так что плюсы в обиду не дам.
Цитата:
Все в этой жизни течет - все меняется. Вот прочитал про новые возможности C# 3.0 и пришел к выводу, что это все же интереснее чем С++.
C# - язык под единственную платформу - .NET. С++ - универсальный язык. Поэтому нет ничего удивительного в том, что C# мощнее Managed C++, а последний в свою очередь приятней C++. Для .NET, в смысле. Специализированность всегда удобнее универсальности для тех частных случаев, для которых эта специализированность предназначалась. Тем не менее ты никогда ("хотя, может с выходом нового стандарта..." © твой) не получишь таких же эффектов на C#, каковые можно получить на плюсах, когда речь зайдёт, например, о шаблонах выражений (именно "шаблонах выражений", а не template-ов - "шаблоны выражений" - это паттерн такой, не привязанный к конкретному языку), метапрограммировании, списках типов, статического полиморфизма... Так что минусы при желании можно найти везде. Впрочем, ты то же самое говорил, извиняюсь.
Насчёт громоздкости, извини, не соглашусь. Я не считаю, что C++ громоздок. Ты ж не будешь называть иерархию классов Application Framework громоздкой. Да, она непростая и не маленькая. Но ведь и не громоздкая.

----------
Одни с годами умнеют, другие становятся старше.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 22:02 14-08-2007 | Исправлено: Qraizer, 22:11 14-08-2007
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qraizer
В целом согласен. Только данный топик не о том.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 11:50 15-08-2007
ifo88

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да преимуществ полно! Возможность многократного использования куска кода, разброс кода по файлам структуризация кода и т.д.
 
Советую почитать статью. введение в ооп

Всего записей: 2 | Зарегистр. 23-09-2011 | Отправлено: 16:53 23-09-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наследование, инкапсуляция, полиморфизм. Вот и все преимущества ))).
 
На самом деле, мне кажется, топикстартеру следовало бы хотя бы попробовать разобраться в ООП, прежде, чем начинать дискуссию ).

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 23:19 24-09-2011
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rrromano

Цитата:
топикстартеру следовало бы хотя бы попробовать разобраться в ООП

думаете, он с этим за семь лет не справился?    

Всего записей: 11768 | Зарегистр. 03-12-2003 | Отправлено: 01:04 25-09-2011
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вполне возможно вопрос этот из разряда филосовских. Посмотрел бы на человека разобравшегося с филосовским вопросом за 7 лет. ))) А вот про  

Цитата:
Специализированность всегда удобнее универсальности для тех частных случаев, для которых эта специализированность предназначалась. Тем не менее ты никогда ("хотя, может с выходом нового стандарта..." © твой) не получишь таких же эффектов на C#, каковые можно получить на плюсах, когда речь зайдёт, например, о шаблонах выражений (именно "шаблонах выражений", а не template-ов - "шаблоны выражений" - это паттерн такой, не привязанный к конкретному языку), метапрограммировании, списках типов, статического полиморфизма... Так что минусы при желании можно найти везде.

Интересно было перечитать. Есть ещё одно суждение - если в разных стандартах имеются шаблоны - они не перестают ими быть, и они решают одну и ту же задачу. Умеснее говорить о том какие из них удобнее, с учётом времени и привычек. Но вот мне если что-то нужно вполне хватает пекатов (peek at и тд.), однако ООП к шаблонам отнести трудно.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 20:24 25-09-2011
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В C# нет шаблонов, там дженерики. Это не более чем просто параметризация типов. И в Джаве, и в Дельфях. И только в Плюсах полноценные шаблоны. По крайней мере я не знаю ещё одного языка, который бы держал шаблоны на уровне Плюсов.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 04:26 26-09-2011
ekemov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Все современные языки програмирования стремяться упростить себя, сделать так кто на данном язике пишет было удобно и просто.

Всего записей: 804 | Зарегистр. 23-12-2005 | Отправлено: 09:36 26-09-2011
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ekemov
Например? Что-то не могу ни одного языка припомнить, который бы стремился себя упростить...

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 13:38 26-09-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » В чем преимущество ООП ?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru