| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Форум группы: delphi > Когда нужно использовать ООП? |
| Автор: Leklerk 28.5.2012, 17:50 |
| Добрый день! Интересно было бы услышать мнения о том, когда нужно использовать ООП в delphi, какие-то примеры. Поделитесь своими соображениями и опытом! |
| Автор: kami 28.5.2012, 18:24 |
Я вот как-то даже растерялся... Да вообще не используй. Процедурный подход проверен десятилетиями и до сих пор жив. А ООП придумали лентяи. З.Ы. Занес себе в цитатник. Только из-за того, что вопрос ввел меня в ступор минут на 15. |
| Автор: XperT 28.5.2012, 18:33 | ||
Когда нужно создать программу, которую собираетесь сопровождать и развивать. Для программ однодневок этот подход не выгоден, разве что за цель поставлено развить/улучшить навыки написания качественного кода. |
| Автор: DarkProg 28.5.2012, 19:54 | ||
Как дорастете, так и начинайте использовать. |
| Автор: cemick 28.5.2012, 23:17 |
Видать стало очень модно гнобить ООП в последнее время, например вот http://habrahabr.ru/post/143620/ и там в комментариях еще куча ссылок на подобные статьи. Я думаю этот вопрос порожден подобными высказываниями. Многим нравится делить все на черное и белое, а уж следовать за толпой и слепо повторять слова каких то непонятных личностей вообще писк моды, но во всем должен быть умеренный подход. Главное не надо маниакально следовать какой то определенной парадигме. Определенного единственно верного ответа не даст никто, пробуйте сами, совмещайте подходы, читайте и думайте своей головой. Ну и http://programmer.97things.oreilly.com/wiki/index.php/Apply_Functional_Programming_Principles Сейчас практически на любом языке можно всегда совместно использовать принципы объектного, процедурного, декларативного , функционального программирования. И делфи не исключение, не говоря о том, что прямо в язык вносят конструкции и абстракции из разных парадигм. Нам бы еще что нибудь типа Linq и настало бы вселенское счастье. |
| Автор: k0rvin 28.5.2012, 23:53 | ||||
http://harmful.cat-v.org/software/OO_programming/
Хотелось бы увидеть пример использования функционального и тем более декларативного принципа в Delphi |
| Автор: Dimonka2 29.5.2012, 18:51 |
Как дорастете, так и начинайте не использовать. |
| Автор: k0rvin 30.5.2012, 09:17 | ||||||||||
Это есть сейчас практически в любом языке. В чисто ООП-шном SmallTalk'80 есть блоки кода, так что это не очень выразительная черта. А где нормальный порядок вычислений (call by name)? Ну или (актуальней) ленивость (call by need)?
Не сводится, но синтаксис иногих языков таков, что выходить за рамки подходов, поддерживаемых языком "искаробки", весьма накладно и неудобно. Например в Java нет синтаксиса анонимных функций, но можно использовать анонимные классы, да только выглядит это так, что лучше б нельзя было.
Но это же будет не часть Делфи, а другой, внешний, язык, для которого нужно будет писать полноценную реализацию (парсер, интерпретатор).
Ну так тут и сказано, что ФП в Делфи "поддерживается очень ограниченно", а ДП вообще не поддерживается.
Оу, ну если для тебя Дейкстра, Карделли, Армстронг и другие -- просто нытики, "ниасилившие ООП", а их статьи про недостатки ООП -- всего лишь нытье, то я умываю руки. |
| Автор: 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 | ||
смотрим Демагогические приемы: 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 | ||||||
Вы внутренности этих успешных систем видели? Уж не благодаря ли огромной толпе манки-кодеров, появившихся в ходе раскрутки ООП, а не качесвту инструмента, "почти все сложные успешные программные системы и комплексы которые мы сейчас имеем так или иначе используют ООП"? Я однажды решил почитать документацию по Spring, посмотрел оглавление и передумал. Паттерн на паттерне и паттерном погоняет. Я конечно не хочу сказать, что везде так, но склонность строить Фабрики Фабрик Фабрик Топоров для наколки дров вместо собственно топоров довольно типична для ООП-софта. ООП должно было уменьшить сложность, а получилось наоборот =/
Я и не ставлю.
Как и любое свойство любого подхода, да. Думаю автору будет полезно узнать не только о том, когда стоит применять ООП, но и о том, когда оно менее уместно. |
| Автор: 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 |
Имхо, автор ни книгу, ни "по ссылке" ничего читать не станет. :( А будет вновь и вновь задавать свои "дурацкие вопросы". Добавлено через 2 минуты и 24 секунды А так топик уже перенесли! Не успел, значит. |