![]() |
|
Модераторы: bsa |
![]()
|
|
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Ув. Знатоки.
Заметил такую вещь в своем коде - с каждым новым проектом все меньше хочется прибегать к наследованию классов и к концепции "думайте объектами, а не данными". Классы воспринимаются только как средство для разграничения области видимости и удобной подстановки интелисенсом. Вместо добавления метода к классу, пишу функцию, которая оперирует этим классом. Функции все чаще становятся static (некоторую роль в этом играют callback-и для той же STL). Классы хочется сделать по максимуму независящими ни от чего, никакого наследования, по возможности только стандартные типы, даже если это загромождает код. Такие вот симптомы. Что почитать/посмотреть дабы встать на путь истинный? |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
Шаблоны проектирования.
Если смотреть на ООП с высоты птичьего полёта, то станет понятно что само-по-себе это лишь один из вариантов решения глобальных задач и, при этом, в Библии не написано ничего о священности этой парадигмы, хотя нетрудно найти людей, готовых сжечь тех кто не верит в ООП. ООП впервые было введено в Smalltalk'е группой из трёх разработчиков во главе с Аланом Кэйем. Ещё в те времена можно было сомневаться в качестве и применимости этой инновации, но сегодня уже видно что решает кучу проблем - это зависит от задачи. |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
ОО Анализ и ОО Проектирование помогут.
Часть этой книги тоже Крэг Ларман. Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
могу поздравить, Вы на нем.. в одном конце уже побывали, когда хочется наследовать все и вся.. сейчас Вас прибивает к другому берегу.. как ощутите края сможете легко плыть придерживаясь золотой середины.. удачи Это сообщение отредактировал(а) mes - 15.1.2011, 19:29 |
||||||
|
|||||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
нет. это стандартный процесс обучения ООП. Сначала, прочитав про ООП, ты начинаешь применять его всюду. Через некоторое время, подобная практика приводит к появлению отвращения к ООП, так как бездумное ее применение ведет к большим проблемам. После этого, ты перестаешь ее применять где только можешь... Затем появится момент, когда решить поставленную задачу без ООП будет практически нереально. К этому времени ты знаешь все плюсы и минусы ООП, а так же где лежат самые большие грабли... |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: нет Всего: 58 |
bsa,
Сроду не было жалания
Вообще, ООП это хорошо конечно, но почему-то все шедевры программерской мысли написаны на чистом Си. Ядро, Perl, Ruby, PHP... Сам предпочитаю функциональное программирование, но зачастую без классов реально никак. Взять хотя бы Qt4 ... |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
и на своих тоже ну так речь о тех, кто решил встать на путь ООП, а не тех, которые попытались его обойти сбоку.. (хорошо и это или плохо - обсуждение не для этой темы)
а Вы уверены, что они написаны без применения ООП Это сообщение отредактировал(а) mes - 15.1.2011, 20:25 |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: нет Всего: 58 |
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
мое мнение - каждый использует ООп по знаниям и возможностям.
я, не люблю ООп. стремлюсь к декомпозиции. так же, зависит от целей. и вообще....это почти интимно для каждого программиста. но, считаю, что вред наносимый ООп, гораздо больше чем польза от него. ИМХО. |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
Порой разбираешься в чужом коде где наследование обёрнуто в директивы процессора, макросы генерируют шаблоны, подключая разные хедеры - и возникает ощущение что смотришь в чью-то ж...пу
Думаю что без ООП такие вещи как Qt или UnrealEngine было бы невозможно написать. Ну или затратив на это в 10 раз больше времени - по экспоненциальной - каждая новая добавленная строчка кода стоила бы столько же трудов, сколько написать все остальные. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
я Вас не поддержу, ибо считаю, что Qt и все порожденное им: много-много ###кодеров недоучек, пишущих окошечки в стиле "Си с классами", просто не понимают на сколько они обмануты, и их цели лишь туман. также, ИМХО. без холивара, пожалуйста. просто мое мнение. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
имею ввиду то, что новички с головой бросаются в изучение Qt, полагая, что это им что-то даст. но вспомните времена билдера, и тех, кто писал используя его. что стало с теми программистами, когда им пришлось изучать альтернативы(wx, Qt, STL, boost) ;) зы больше не отвечаю в эту тему. а то придет дядя алексеич, и снова скажет что я тролль |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |