|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 103109. Ответов 793
Метки нет (Все метки)
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп? Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами. Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
|
|
| 09.02.2010, 13:44 | |
|
Ответы с готовыми решениями:
793
Стоит ли использовать ООП -- часть вторая
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||||||||||||
| 11.09.2017, 16:03 | |||||||||||||||||||||
|
Добавлено через 3 минуты Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 13 минут Добавлено через 2 минуты Добавлено через 3 минуты Добавлено через 12 минут
Это фактическки разные механизмы действующие праллельно. Т.е.
Добавлено через 5 минут Добавлено через 13 минут
0
|
|||||||||||||||||||||
|
|
|||||||
| 11.09.2017, 16:29 | |||||||
|
Это в виртовском Обероне модуль является единицей компиляции.
0
|
|||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||
| 11.09.2017, 16:29 | ||||||||||||
|
К примеру
0
|
||||||||||||
|
|
|||||||||
| 11.09.2017, 16:44 | |||||||||
|
Добавлено через 12 минут
0
|
|||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 11.09.2017, 17:15 | ||
|
Добавлено через 3 минуты Именно поэтому при использовании наследования избегаются ненужные связи между различными механизмами присущими одной конкретной сущности. С вашим же подходом получается что функция срать зависит как от наличия у животного позвоночника так и количества глаз и занятий на досуге и т.д. и т.п.
0
|
||
|
|
||
| 11.09.2017, 17:21 | ||
|
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 11.09.2017, 17:38 | ||
|
0
|
||
|
|
|||||||
| 11.09.2017, 17:54 | |||||||
0
|
|||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 11.09.2017, 19:13 | ||||||||
|
т.е. AddValue_Base(Child,5); вы сделать не сможете. А именно это нужно чтобы кот ловил не только мышь но и ее потомков. Добавлено через 28 минут Value2 предназначено для какого то более другого механизма чем Value. При этом вам придется переписать механизм работающий с Value заново. Т.е. будет:
Добавлено через 33 минуты
0
|
||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||||||||||||
| 11.09.2017, 19:29 | |||||||||||||||||
|
Предлагаю такой вариант:
Который в полностью ООП-стиле выглядел бы так:
0
|
|||||||||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 12.09.2017, 02:37 | ||
|
0
|
||
|
|
|||||
| 12.09.2017, 20:38 | |||||
|
Если честно, то я бы даже не стал пользоваться этими определениями из других файлов, а создавал бы обьекты в свои файлах с нуля. Это не увеличит исполняемый код, а только увеличит листинг программы, одноврменно повысив её поддержку. Если разрабатывается некая игра, то там может быть множество обьектов-акторов. Каждый такой тип обьекта будет иметь своё собственное описание в соответствующем файле-модуле. Если мне будет нужно изменить его описание и поведение, то я его изменю не трогая определения других обьектов в других файлах. От слова "совсем". Нет тут никакой связности между типами. Между функциями-контролёрами может быть.
0
|
|||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 12.09.2017, 22:21 | ||||||
|
Добавлено через 3 минуты Добавлено через 56 секунд Добавлено через 4 минуты Добавлено через 28 минут
1
|
||||||
|
|
|||||||
| 13.09.2017, 18:28 | |||||||
А у вас одни классы объектов переплетаются с другими. Да и свойство ООП-объектов обмениваться сообщениями как-то не вяжется со сложившейся практикой смешивать процедурный подход с объектным. При этом получается большая связность обьектов с друг другом. То есть ваш код это та же процедурщина приправленная лапшой наследственности. Лапша в лапше.. Кстати идея обмена сообщениями в общем смысле есть довольно прогрессивная идея. В чём вообще заключается смысл обмена сообщениями? Когда люди общаются между собой, таким образом передавая информацию друг-другу, они не лезут сразу в черепушку своих визави, имея информацию об устройстве этой черепушки, но используют посредника в виде воздушной среды, при помощи которой звуковые волны распространяются от одного источника к другому получателю и наоборот. То бишь, нужен некий интерфейс или посредник. Это первое. Второе заключается в том, что людям нужен некий язык взаимного общения, который могли бы понимать оба участника. Короче говоря нужен некий лексикон. Должны иметь место два необходимых фактора. Например в win api есть некий лексикон сообщений, который ОС посылает приложению начинающихся с префикса WM(Window Messige). ОС ничего не знает о нашем приложении, она только информирует его о произошедшем событии. Почему бы обьектам не поступать так же?
0
|
|||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||
| 13.09.2017, 19:48 | ||||||||||||||
|
пример иерархии VCL во главе TObject. Он умеет найти в RTTI методы/поля по имени и имена по адресам методов/полей. И больше в общем то ничего. От него унаследован TPresistent. Он умеет писаться/читаться в специальный поток. От него унаследован TComponent - он обеспечивает механнизм слежения за жизненным циклом компонентов. Дальше начинается ветвление. от TComponent поражден TControl, TMenu и все невизуальные компоненты. TControl умеет поменять размеры/выравняться иметь дочерние контролы и самому детем быть. TMenu умеет обрабатывать виндвское древовидное меню. невизуальные компоненты умеют кому что нужно. от TControl порожден TWinControl который умеет обрабатывать окно WinAPI и TGraphicControl который представляет собой компонент рисуемый не как стандартный контрол WinAPI. а вот от этих двух гавриков порождено все визуальное. При этом вызовов методов предка из своего метода почти нет. Т.е. - каждый из потомков просто добавляет свой механизм к уже существующему. В результате мы можем принять на вход/поместить в список только тех кто имеет определенный механизм даже если они разных типов и обработать их одним и тем же котом. Добавлено через 58 секунд Добавлено через 2 минуты Добавлено через 5 минут Добавлено через 5 минут Добавлено через 1 минуту Добавлено через 46 секунд Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 43 секунды Добавлено через 4 минуты Вообще все нападки на ООП идут от разных евангелистов. По одной причине - этим говноляпам способным исключительно на словесный понос противоестественна идея начинать разработку с анализа предметной области а не с высирания говнокода. Ничего удивительного в этом нет. Именно потому что они не умеют анализировать предметную область они все поголовно безработные.
0
|
||||||||||||||
|
|
|||||||
| 14.09.2017, 18:30 | |||||||
|
Не кажется ли вам, что всё должно быть несколько наоборот? Начинать нужно с точки, продолжать линией, заканчивать фигурами... Если уж заниматься этим самым наследованием.. В рамках одного адресного пространства можно вводить псевдопараллельность. Да и писать приложения и системы последовательного исполнения сейчас уже не модно и просто опасно, ибо сбой в одном компоненте остановит всю программу, поэтому от структурной разработки и отказались в пользу некоего парралельного существования оьектов. В программе может быть много уровней контекстов. В каждом из них ограниченное количество обьектов, параллельное существование которых можно обеспечить. Да и при традиционной разработке можно использовать отдельного диспетчера-почтальёна, который бы являлся посредником между отдельными компонентами системы. Скажите пожалуйста где у вас ООП? Да его, настоящего ООП просто нет. Нет настоящей посылки сообщений, как нет настоящего наследования. От этого зависит реакция других обьектов. Другие обьекты ничего не знают о его мыслительных способностях. Они судят уже "по факту". Некие обьекты отдают приказы. Некие обьекты их получают и выдают "на гора" сообщения о том, что приказ выполнен. Должна быть иерархия типа - приказчик-исполнитель. Исполнители, при определённых обстоятельствах сами могут отдавать приказы своим собственным "рабам".. Добавлено через 10 минут Одно из определений ООП гласит, что каждый обьект имеет своё собственное состояние. А это значит, что он должен создаваться, как конечный автомат. То есть: у вас нет ни настоящего наследования, ни настоящего обмена сообщениями, ни контроля над состоянием обьектов. Так где же тогда ваше ООП? Добавлено через 8 минут
0
|
|||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 15.09.2017, 01:02 | |||||||||||
|
Добавлено через 47 минут Добавлено через 2 минуты Добавлено через 1 минуту Добавлено через 4 минуты Добавлено через 2 часа 58 минут Добавлено через 1 минуту Добавлено через 1 час 27 минут Добавлено через 2 минуты Добавлено через 58 минут
0
|
|||||||||||
|
|
||||||||
| 15.09.2017, 19:28 | ||||||||
|
Многие уважаемые оопники уже давно твердят о вреде наследования. Теперь хорошо виден вред и от связывания процедур и данных в одной общей клетке... Итак, ООП сдаёт свои позиции одна за другой. Практически от него уже ничего не осталось.. Функциональное программирование поставило во главу угла функцию. Обьектно-ориентированное программирование поставило во главу угла данные. Между этими двумя противоположенными крайностями должна быть некая золотая середина. Вам так не кажется?.. Добавлено через 7 минут
0
|
||||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|
| 15.09.2017, 23:22 | |
|
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||||
| 16.09.2017, 03:19 | |||||||||||||
|
Добавлено через 4 минуты Добавлено через 6 минут Добавлено через 17 минут Это и есть золотая середина к которой тянется ФП но для того чтобы дотянуться оно должно стать ООП. Добавлено через 13 минут Добавлено через 4 минуты
Добавлено через 3 минуты
0
|
|||||||||||||
| 16.09.2017, 03:19 | |
|
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|