|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 103118. Ответов 793
Метки нет (Все метки)
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп? Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами. Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
|
|
| 09.02.2010, 13:44 | |
|
Ответы с готовыми решениями:
793
Стоит ли использовать ООП -- часть вторая
|
|
|
||||||
| 04.09.2017, 15:19 | ||||||
|
Может, и пользуется как своими собственными. Я против спагетти. Любого. Это если по уму. Лучше чтобы их вовсе не было ни в коде, ни в препроцессоре. А препроцессор нужно использовать в совершенно обычных целях, в каких его используют в си. Добавлено через 23 минуты В общем я об этом уже писал другими словами, говоря о генно-модифицированном гипер-существе, но мало кто слушает.
0
|
||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 04.09.2017, 15:33 | ||||
|
Добавлено через 56 секунд Добавлено через 5 минут
0
|
||||
|
|
|||||
| 04.09.2017, 16:28 | |||||
![]() ![]() Да.. Интересно как вы сохраняете контекст обьекта например в файл? Пишите отдельный метод в класс, который выбирает что сохранять только из статических типов(не методов)? А мне достаточно структуру скинуть в файл и не париться.
0
|
|||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 04.09.2017, 19:09 | |||
|
Добавлено через 2 минуты
0
|
|||
|
|
|||
| 04.09.2017, 20:13 | |||
|
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 05.09.2017, 02:40 | |||||||||||
|
Добавлено через 3 минуты Добавлено через 2 часа 44 минуты Добавлено через 2 часа 1 минуту Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 3 минуты Добавлено через 3 минуты Добавлено через 9 минут
0
|
|||||||||||
|
|
|||||||||
| 05.09.2017, 15:24 | |||||||||
|
А почему обязательно "должны"? Может вовсе и "не должны"? Паук и обезьяна потомки универсального существа, - это круто! Это уже какую-то мистику навевает - "Унивесральное Существо", - это что-то из времён французской революции, - там как раз было это "универсальное существо".. Насекомое и человек потомки от одной сущности? Представляю себе эту сущность: какое-то двуного насекомоподбное существо представляется, выкидашами которого оказались паук с человеком... Это действительно смешно. Повторяю: я за "один раз написал и забыл." А вы просто не думаете о тех, кто будет разгребать ваш код. Да его никто и не будет никогда разгребать, легче всё заново переписать.
0
|
|||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||
| 05.09.2017, 16:02 | ||||||||||||
|
Добавлено через 2 минуты Добавлено через 5 минут Добавлено через 1 минуту Добавлено через 42 секунды Добавлено через 44 секунды Добавлено через 1 минуту Добавлено через 7 минут Добавлено через 2 минуты Добавлено через 2 минуты Добавлено через 11 минут
0
|
||||||||||||
|
|
|||||||
| 05.09.2017, 16:35 | |||||||
|
А вы поглядите во что выльется ваш реальный код: процедурный как раз и будет в 10-100 раз меньше В РЕАЛЕ, то бишь, exe программа. Обман потребителя. ООП программы такие пухлые от чего? Примеры привести? В процедурщине как раз может быть пухлый листинг, но короткая исполняемая программа. Но этот пухлый листинг легко структурируется. У каждого контрола есть свой тип. Небольшие отличия каждого(цвет глаз, форма носа) прописываются в типе этого контрола. Не надо обманывать самих себя: в типе каждого обьекта будет тоже самое нагромождение, которое просто скрыто от вас компилятором, но это не правильно - всё должно быть открыто для изменений независимо друг от друга. Если растёт номенклатура, как вы выразились, то структурный тип находится у нас в одном месте, - именно в этом одном месте можно добавить дополнительные возможности. Причём методы-функции получают указатель на конкретную структуру-тип, поэтому такое изменение их никоим образом не затрагивает. Просто прописываются дополнительные функции для обработки " добавленной номенклатуры". Добавлено через 1 минуту
0
|
|||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 05.09.2017, 18:32 | ||||||||
|
Добавлено через 1 минуту Добавлено через 8 минут Добавлено через 1 минуту Добавлено через 6 минут Добавлено через 15 минут Добавлено через 56 минут
0
|
||||||||
|
|
||||||
| 05.09.2017, 18:43 | ||||||
|
А почему, спрашивается нужно обязательно обойтись без дублирования? Например инлайн функции помогают ускорить код за счёт увеличения рабочего кода программы именно за счёт дублирования. Тут тоже: за счёт увеличения обьёма просто листинга программы, мы получаем преимущество повторного использования кода более мелкого описания обьектов. То есть, теперь можно повторно тащить более мелкие структуры и функции для работы с ними. Что-то теряем второстепенного, но и что-то находим ценного..
0
|
||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 06.09.2017, 11:38 | |||||||||||
|
Добавлено через 1 минуту Добавлено через 59 секунд Добавлено через 1 минуту Добавлено через 4 минуты Добавлено через 4 минуты Добавлено через 5 минут при этом в заголовке класса-потомка переписывается не весь интерфейс предка а только то чего у предка нету и те методы реализация которых переопределяется. К примеру в данном примере с контролами дублироваться из описания предка будет только перечисление абстрактных не реализованных в предке методов типа Paint и возможно деструктора. Всего остального что будет в их описании интерфейса в предке нет. Т.е. то что есть в слове класс описывает не только интерфейс но и какая его часть реализуется в этом классе. Добавлено через 6 минут Для примеру у меня в оконном фреймверке интерфейс абстрактного TControl около 150 строк. Интерфейсы его потомков -конкретных контролов пока что не более 10 строк при этом из того что есть в предке переопределяют не более 3 абстрактных методов каждый. Остальные просто используют в своем механизме не задумываясь как оно там устроено. Добавлено через 26 минут Добавлено через 37 минут Добавлено через 14 часов 41 минуту Добавлено через 3 минуты А к примеру скроллинг реализуется уже на уровне потомка-полуфабриката. Потому что не все контролы должны уметь скроллировать свое содержимое.
0
|
|||||||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
| 06.09.2017, 13:18 | |
|
0
|
|
|
|
||||||
| 06.09.2017, 13:51 | ||||||
|
Почему не сделать это явно, даже пользуясь декомпозицией по типам? Но лучше её не использовать. Хорошо. Вот смотрю я на определение нового класса и вижу там, что он наследует от какого-то другого. Тут у меня сразу возникает дискомфорт от того, что нужно искать это "другое" чтобы понять "это самое". Ну, ладно пережили и нашли это другое(а это время). А в описании этого другого я вижу, что оно наследует тоже от другого, причём всего два поля данных и один виртуальный метод. Раздражение возрастает пропорционально глубине вложенности этого дубового дерева. Вроде вот он - объект, а вроде и нет его вовсе: он оказывается размазан по всему коду... Его части валяются повсюду: ноги здесь, руки там, а туловище висит на заборе.)) Прямо как после какого-то взрыва, наверное большого Ума?)) Скажете: какая разница как он написан и где? Большая разница, прежде всего для меня, как разработчика. Мне удобнее иметь на рабочем столе порядок: болтики разложены по своим коробкам, а гаечки по своим, да и отсортированы они по размерам. Тип одного обьекта должен быть описан в одном месте - это сокращает время на его понимание. Кто-то сказал: "все методологии произошли от страха". А у страха, говорят, глаза велики.. Классифицируют по СМЫСЛУ, а не по типу..
0
|
||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 06.09.2017, 15:49 | ||
|
А по поводу боязни наследования - никто и не заставляет принудительно им пользоваться. Но ведь намного же проще задать "поставить стирку стиралке" чем задать полный алгоритм для одной единственной модели стиралки, где искать дверцу/крышку для белья, для порошка, сколько белья класть, как и какой режим выставлять с помощью каких именно ручек/кнопок ...
0
|
||
|
|
||||
| 06.09.2017, 16:22 | ||||
|
0
|
||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 06.09.2017, 16:30 | ||
|
0
|
||
|
|
||
| 06.09.2017, 16:34 | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 06.09.2017, 16:42 | |
|
CoderHuligan, а у вас всегда получится из этих нескольких файлов сделать комбинацию таких функций? Чтобы не произошло конфликтов между ними, например из-за того, что функции имеют одно и то же название?
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 06.09.2017, 19:58 | |||||||||||
|
Типа вот так:
Добавлено через 6 минут Добавлено через 3 минуты Таже самая логика что и с контролами. Отличие только в том что сборка контролов сама является потомком контрола - панелью/формой и т.п. групповым котролом . Добавлено через 5 минут Добавлено через 8 минут Добавлено через 2 часа 39 минут
0
|
|||||||||||
| 06.09.2017, 19:58 | |
|
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 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
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|