![]() |
Модераторы: THandle, bems |
![]() ![]() ![]() |
|
Leklerk |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Добрый день! Интересно было бы услышать мнения о том, когда нужно использовать ООП в delphi, какие-то примеры. Поделитесь своими соображениями и опытом!
Это сообщение отредактировал(а) Leklerk - 28.5.2012, 17:53 |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 1 Всего: 72 |
Я вот как-то даже растерялся... ![]() Да вообще не используй. Процедурный подход проверен десятилетиями и до сих пор жив. А ООП придумали лентяи. З.Ы. Занес себе в цитатник. Только из-за того, что вопрос ввел меня в ступор минут на 15. Это сообщение отредактировал(а) kami - 28.5.2012, 18:26 |
|||
|
||||
XperT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 19.8.2006 Репутация: нет Всего: 4 |
Когда нужно создать программу, которую собираетесь сопровождать и развивать. Для программ однодневок этот подход не выгоден, разве что за цель поставлено развить/улучшить навыки написания качественного кода. |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Как дорастете, так и начинайте использовать. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Видать стало очень модно гнобить ООП в последнее время, например вот http://habrahabr.ru/post/143620/ и там в комментариях еще куча ссылок на подобные статьи. Я думаю этот вопрос порожден подобными высказываниями. Многим нравится делить все на черное и белое, а уж следовать за толпой и слепо повторять слова каких то непонятных личностей вообще писк моды, но во всем должен быть умеренный подход. Главное не надо маниакально следовать какой то определенной парадигме. Определенного единственно верного ответа не даст никто, пробуйте сами, совмещайте подходы, читайте и думайте своей головой. Ну и http://programmer.97things.oreilly.com/wik...ming_Principles Сейчас практически на любом языке можно всегда совместно использовать принципы объектного, процедурного, декларативного , функционального программирования. И делфи не исключение, не говоря о том, что прямо в язык вносят конструкции и абстракции из разных парадигм. Нам бы еще что нибудь типа Linq и настало бы вселенское счастье. |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
Не в такое уж и последнее
Хотелось бы увидеть пример использования функционального и тем более декларативного принципа в Delphi -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
Dimonka2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
||||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
нытики были всегда, но последние года полтора стало модно говорить, что ООП сакс
Те же анонимный фукции, замыкание, выразительная черта функциональных языков. Использование каких то принципов той или иной парадигмы ведь не сводиться к использованию явных поддерживаемых синтаксических конструкций языка, ссылку на http://programmer.97things.oreilly.com не просто так давал. К сожалению в Делфи нет атрибутов как в C#, которые можно отнести к декларативному программированию, но никто не запрещает использовать какие то принципы такого подхода при написание своих приложений в виде DSL, файлов разметки и т.п. Сравнение языков в wiki |
|||
|
||||
k0rvin |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
Это есть сейчас практически в любом языке. В чисто ООП-шном SmallTalk'80 есть блоки кода, так что это не очень выразительная черта. А где нормальный порядок вычислений (call by name)? Ну или (актуальней) ленивость (call by need)?
Не сводится, но синтаксис иногих языков таков, что выходить за рамки подходов, поддерживаемых языком "искаробки", весьма накладно и неудобно. Например в Java нет синтаксиса анонимных функций, но можно использовать анонимные классы, да только выглядит это так, что лучше б нельзя было.
Но это же будет не часть Делфи, а другой, внешний, язык, для которого нужно будет писать полноценную реализацию (парсер, интерпретатор).
Ну так тут и сказано, что ФП в Делфи "поддерживается очень ограниченно", а ДП вообще не поддерживается.
Оу, ну если для тебя Дейкстра, Карделли, Армстронг и другие -- просто нытики, "ниасилившие ООП", а их статьи про недостатки ООП -- всего лишь нытье, то я умываю руки. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||||
|
|||||||||||
C4EBA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 13.4.2009 Репутация: нет Всего: 1 |
Leklerk, почитай книгу
Иванова Объектно-ориентированное программирование (319 с) pdf Это одна из о-о-о-очень немногих, к сожалению, книг на тему ООП в Дельфи. В книге программа для выполнения учебного примера вначале разрабатывается в процедурном стиле, потом - в ООП. Думаю, многое станет понятно. ЗЫ. Не стоит, думаю, говорить, что книга есть в Сети. |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: нет Всего: 15 |
Leklerk, почитай это - ссылка
Не конкретно про ООП, но имеет смысл ознакомится полностью. Там в конце есть про это. |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
смотрим Демагогические приемы: http://ru.wikipedia.org/wiki/%D0%94%D0%B5%...%B3%D0%B8%D1%8F Я не говорил про "неасилевших", понятно что у каждого течения есть свои яркие представители, которые разбираются в вопросе и ведут за собой ничего не понимающих последователей, которые могут лишь повторят за светлыми умами. Несогласные есть всегда. Я лишь акцентировал внимание, что в последнее время в девелоперском комьюнити эта тема стала как никогда жаркой. Но есть, как я полагаю, факт, что ООП показала свою применимость и успешность, почти все сложные успешные программные системы и комплексы которые мы сейчас имеем так или иначе используют ООП. В конце концов это удобный (очередной) способ группировки кода, просто не надо ставить равенство между ООП и наследование, есть свойства ООП, ненадлежащие и повсеместное использование которых может пойти во вред, что тут спорить. |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
Вы внутренности этих успешных систем видели? Уж не благодаря ли огромной толпе манки-кодеров, появившихся в ходе раскрутки ООП, а не качесвту инструмента, "почти все сложные успешные программные системы и комплексы которые мы сейчас имеем так или иначе используют ООП"? Я однажды решил почитать документацию по Spring, посмотрел оглавление и передумал. Паттерн на паттерне и паттерном погоняет. Я конечно не хочу сказать, что везде так, но склонность строить Фабрики Фабрик Фабрик Топоров для наколки дров вместо собственно топоров довольно типична для ООП-софта. ООП должно было уменьшить сложность, а получилось наоборот =/
Я и не ставлю.
Как и любое свойство любого подхода, да. Думаю автору будет полезно узнать не только о том, когда стоит применять ООП, но и о том, когда оно менее уместно. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
Leklerk |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Большое спасибо! C4EBA, спасибо за книгу, superVad, за ссылку.
|
|||
|
||||
drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
Думаю тему надо во флудилку перенести, а то троли уже накинулись...
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
в клуб пойдет
-------------------- Обижено школьников: 8 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
Имхо, автор ни книгу, ни "по ссылке" ничего читать не станет. :( А будет вновь и вновь задавать свои "дурацкие вопросы". Добавлено через 2 минуты и 24 секунды А так топик уже перенесли! Не успел, значит. ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Добро пожаловать в форум группы "Delphi". В разделе разрешается:
Строго запрещено:
Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форум группы: delphi | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |