Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форум группы: delphi > Когда нужно использовать ООП?


Автор: Leklerk 28.5.2012, 17:50
Добрый день! Интересно было бы услышать мнения о том, когда нужно использовать ООП в delphi, какие-то примеры. Поделитесь своими соображениями и опытом!

Автор: kami 28.5.2012, 18:24
Цитата(Leklerk @  28.5.2012,  17:50 Найти цитируемый пост)
когда нужно использовать ООП в delphi

Я вот как-то даже растерялся... smile 
Да вообще не используй. Процедурный подход проверен десятилетиями и до сих пор жив. А ООП придумали лентяи.

З.Ы. Занес себе в цитатник. Только из-за того, что вопрос ввел меня в ступор минут на 15.

Автор: XperT 28.5.2012, 18:33
Цитата(Leklerk @ 28.5.2012,  17:50)
Добрый день! Интересно было бы услышать мнения о том, когда нужно использовать ООП в delphi, какие-то примеры. Поделитесь своими соображениями и опытом!

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

Автор: DarkProg 28.5.2012, 19:54
Цитата(Leklerk @  28.5.2012,  18:50 Найти цитируемый пост)
Интересно было бы услышать мнения о том, когда нужно использовать ООП в delphi

Как дорастете, так и начинайте использовать.

Автор: cemick 28.5.2012, 23:17
Цитата(Leklerk @  28.5.2012,  17:50 Найти цитируемый пост)
когда нужно использовать ООП в delphi, какие-то примеры.

Видать стало очень модно гнобить ООП в последнее время, например вот http://habrahabr.ru/post/143620/ и там в комментариях еще куча ссылок на подобные статьи.  Я думаю этот вопрос порожден подобными высказываниями.    Многим нравится делить все на черное и белое, а уж следовать за толпой и слепо повторять слова каких то непонятных личностей вообще писк моды, но во всем должен быть умеренный подход. Главное не надо маниакально следовать какой то определенной парадигме. Определенного единственно верного ответа не даст никто, пробуйте сами, совмещайте подходы, читайте и думайте своей головой. 
Ну и http://programmer.97things.oreilly.com/wiki/index.php/Apply_Functional_Programming_Principles

Сейчас практически на любом языке можно всегда совместно  использовать принципы  объектного, процедурного, декларативного , функционального программирования. И делфи не исключение, не говоря о том, что прямо в язык вносят конструкции и абстракции из разных парадигм. Нам бы еще что нибудь типа Linq и настало бы вселенское счастье. 

Автор: k0rvin 28.5.2012, 23:53
Цитата(cemick @ 28.5.2012,  23:17)
Видать стало очень модно гнобить ООП в последнее время, например вот

http://harmful.cat-v.org/software/OO_programming/

Цитата(cemick @ 28.5.2012,  23:17)
Сейчас практически на любом языке можно всегда совместно  использовать принципы  объектного, процедурного, декларативного , функционального программирования. И делфи не исключение

Хотелось бы увидеть пример использования функционального и тем более декларативного принципа в Delphi

Автор: Dimonka2 29.5.2012, 18:51
Цитата(DarkProg @  28.5.2012,  19:54 Найти цитируемый пост)

Как дорастете, так и начинайте использовать.

Как дорастете, так и начинайте не использовать.  smile 

Автор: cemick 29.5.2012, 19:52
Цитата(k0rvin @  28.5.2012,  23:53 Найти цитируемый пост)
Не в такое уж и последнее

нытики были всегда, но последние года полтора стало модно говорить, что ООП сакс
Цитата(k0rvin @  28.5.2012,  23:53 Найти цитируемый пост)
Хотелось бы увидеть пример использования функционального и тем более декларативного принципа в Delphi 

Те же анонимный фукции, замыкание, выразительная черта функциональных языков. Использование каких то принципов той или иной парадигмы ведь не сводиться к использованию явных поддерживаемых синтаксических конструкций языка, ссылку на http://programmer.97things.oreilly.com не просто так давал. К сожалению в Делфи нет атрибутов как в C#, которые можно отнести к декларативному программированию, но никто не запрещает использовать какие то принципы такого подхода при написание своих приложений в виде DSL, файлов разметки и т.п.  
http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Автор: k0rvin 30.5.2012, 09:17
Цитата(cemick @ 29.5.2012,  19:52)
Те же анонимный фукции, замыкание, выразительная черта функциональных языков.

Это есть сейчас практически в любом языке. В чисто ООП-шном SmallTalk'80 есть блоки кода, так что это не очень выразительная черта.

А где нормальный порядок вычислений (call by name)? Ну или (актуальней) ленивость (call by need)?

Цитата(cemick @ 29.5.2012,  19:52)
Использование каких то принципов той или иной парадигмы ведь не сводиться к использованию явных поддерживаемых синтаксических конструкций языка

Не сводится, но синтаксис иногих языков таков, что выходить за рамки подходов, поддерживаемых языком "искаробки", весьма накладно и неудобно. Например в Java нет синтаксиса анонимных функций, но можно использовать анонимные классы, да только выглядит это так, что лучше б нельзя было.

Цитата(cemick @ 29.5.2012,  19:52)
но никто не запрещает использовать какие то принципы такого подхода при написание своих приложений в виде DSL, файлов разметки и т.п. 

Но это же будет не часть Делфи, а другой, внешний, язык, для которого нужно будет писать полноценную реализацию (парсер, интерпретатор).

Цитата(cemick @ 29.5.2012,  19:52)
http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Ну так тут и сказано, что ФП в Делфи "поддерживается очень ограниченно", а ДП вообще не поддерживается.

Цитата(cemick @ 29.5.2012,  19:52)
нытики были всегда, но последние года полтора стало модно говорить, что ООП сакс

Оу, ну если для тебя Дейкстра, Карделли, Армстронг и другие -- просто нытики, "ниасилившие ООП", а их статьи про недостатки ООП -- всего лишь нытье, то я умываю руки.


Автор: C4EBA 30.5.2012, 13:29
Leklerk, почитай книгу 
Иванова Объектно-ориентированное программирование (319 с) pdf
Это одна из о-о-о-очень немногих, к сожалению, книг на тему ООП в Дельфи.
В книге программа для выполнения учебного примера вначале разрабатывается в процедурном стиле, потом - в ООП. Думаю, многое станет понятно.
ЗЫ. Не стоит, думаю, говорить, что книга есть в Сети.

Автор: superVad 30.5.2012, 15:13
Leklerk, почитай это - http://www.gunsmoker.ru/2011/04/blog-post.html
Не конкретно про ООП, но имеет смысл ознакомится полностью. Там в конце есть про это.

Автор: cemick 31.5.2012, 12:23
Цитата(k0rvin @  30.5.2012,  09:17 Найти цитируемый пост)
Оу, ну если для тебя Дейкстра, Карделли, Армстронг и другие -- просто нытики, "ниасилившие ООП", а их статьи про недостатки ООП -- всего лишь нытье, то я умываю руки.

смотрим Демагогические приемы: http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BC%D0%B0%D0%B3%D0%BE%D0%B3%D0%B8%D1%8F

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

Автор: k0rvin 31.5.2012, 13:21
Цитата(cemick @ 31.5.2012,  12:23)
Но есть, как  я полагаю, факт, что ООП показала свою применимость и успешность, почти все сложные успешные программные системы и комплексы которые мы сейчас имеем так или иначе используют ООП.

Вы внутренности этих успешных систем видели? Уж не благодаря ли огромной толпе манки-кодеров, появившихся в ходе раскрутки ООП, а не качесвту инструмента, "почти все сложные успешные программные системы и комплексы которые мы сейчас имеем так или иначе используют ООП"? Я однажды решил почитать документацию по Spring, посмотрел оглавление и передумал. Паттерн на паттерне и паттерном погоняет. Я конечно не хочу сказать, что везде так, но склонность строить Фабрики Фабрик Фабрик Топоров для наколки дров вместо собственно топоров довольно типична для ООП-софта. ООП должно было уменьшить сложность, а получилось наоборот =/

Цитата(cemick @ 31.5.2012,  12:23)
В конце концов это удобный (очередной) способ группировки кода, просто не надо ставить равенство между ООП и наследование

Я и не ставлю.

Цитата(cemick @ 31.5.2012,  12:23)
есть свойства ООП ненадлежащие и повсеместное использование которых может пойти во вред, что тут спорить.

Как и любое свойство любого подхода, да. Думаю автору будет полезно узнать не только о том, когда стоит применять ООП, но и о том, когда оно менее уместно.

Автор: Leklerk 1.6.2012, 08:02
Большое спасибо! C4EBA, спасибо за книгу, superVad, за ссылку.

Автор: drkot 1.6.2012, 13:32
Думаю тему надо во флудилку перенести, а то троли уже накинулись...

Автор: bems 2.6.2012, 00:52
в клуб пойдет

Автор: northener 2.6.2012, 01:22
Цитата(Leklerk @  1.6.2012,  08:02 Найти цитируемый пост)
Большое спасибо! C4EBA, спасибо за книгу, superVad, за ссылку. 

Имхо, автор ни книгу, ни "по ссылке" ничего читать не станет. :(
А будет вновь и вновь задавать свои "дурацкие вопросы".

Добавлено через 2 минуты и 24 секунды
А так топик уже перенесли!
Не успел, значит. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)