Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: используете ли вы ооп
да 238 86.55%
нет 37 13.45%
Голосовавшие: 275. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.76/461: Рейтинг темы: голосов - 461, средняя оценка - 4.76
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386

Стоит ли использовать ООП?

09.02.2010, 13:44. Показов 103149. Ответов 793
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп?
Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами.
Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2010, 13:44
Ответы с готовыми решениями:

Стоит ли использовать ООП -- часть вторая
У людей задающих подобные вопросы не все в порядке с пониманием ООП. Например, в параллельной теме человек интересуется: На самом...

Какие РЕАЛЬНО есть причины НЕ использовать ООП?
Появился такой вопрос. Все мы знаем о шумихе вокруг ООП, спорной идее наследования, других невнятных идей которых можно добиться...

Где стоит использовать bootstrap и стоит ли вообще использовать CSS фреймворки?
Здравствуйте. Лично я ужасаюсь ковырять стили, когда к сайту подключен bootstrap и мало понимаю, чем он хорош вообще. В данной теме я бы...

793
Заблокирован
09.02.2017, 13:07
Студворк — интернет-сервис помощи студентам
Evg, это не имеет никакого значения. Специализация -- это однозначный термин, это сужение понятия, конкретизация.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
09.02.2017, 14:22
Цитата Сообщение от asmquest Посмотреть сообщение
опять же, непонятно откуда вы берете это, но в математике и логике все с точностью до наоборот.
Вообще-то, это слова известного профессора, доктора наук, автора учебников, который преподаёт математику в одном из лучших вузов страны.

Добавлено через 3 минуты
Цитата Сообщение от asmquest Посмотреть сообщение
Подкласс -- специализация надкласса
Значит подкласс можно везде использовать место надкласса?
0
Заблокирован
09.02.2017, 14:35
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вообще-то, это слова известного профессора, доктора наук, автора учебников, который преподаёт математику в одном из лучших вузов страны.
Передайте ему что он дурачок. Аксиомы и априорные суждения не доказываются.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Значит подкласс можно везде использовать место надкласса?
Что это значит? Почему это должно следовать из данного утверждения?
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
09.02.2017, 17:16
asmquest,
Когда человек не понимает что-то из того, что говорит математик про математику, это нормально. Но когда человек делает из этого вывод, что математик разбирается в математике хуже него, то это уже показатель уровня развития.

Ситуация предельно проста - либо Вы разбираетесь в математике лучше профессора, либо в Ваших рассуждениях есть ошибка. И вопрос "какой вариант более вероятен?", по сути, риторический.
1
Заблокирован
09.02.2017, 17:21
Shamil1, ваш математик -- полный ноль. del. В наше время, это не редкость. Я не знаток математики, но основы мне знакомы

Добавлено через 3 минуты
Shamil1, кстати, любопытно было бы понаблюдать, как Вы будете доказывать, к примеру, вот это

Через любые две точки на плоскости можно провести прямую и притом только одну.

Дерзайте. Или снова в кусты?
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
09.02.2017, 22:56
asmquest,
То, что Вы не понимаете, что такое аксиома, не оправдывает Вашего хамства.
0
Заблокирован
09.02.2017, 23:07
Shamil1, похоже, что такое аксиома, Вы узнали только сегодня
0
10.02.2017, 06:49
 Комментарий модератора 
asmquest, я вас при всем народе предупреждаю, если не прекратите хамить - то очень скоро отправитесь в бан.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
10.02.2017, 17:03
Какая связь между утверждениями "очевидные вещи легко доказать" и "аксиомы не доказываются"? Никакой. Тем не менее, asmquest приводит второе утверждение в качестве опровержения первого. Видимо он считает, что аксиома - это то, что очевидно.

Кликните здесь для просмотра всего текста
На самом деле, аксиома - это то, что постулируется, принимается без доказательства. При этом постулированное утверждение не является очевидным. Более того, вне теории, в которой оно постулировано, это утверждение даже не является верным. Фактически, аксиомы задают "правила игры". Можно взять другие правила (другой набор аксиом) и получить другую "игру" (другую теорию). Пересекаются ли параллельные прямые? Правильного ответа на этот вопрос не существует. Точнее, правильный ответ на этот вопрос зависит от того, какие аксиомы мы постулируем.


Очевидное - это то, что легко доказать. Но я понимаю, что для троллей и софистов более удобно другое определение: очевидное - это то, что не нуждается в доказательстве. Ведь тогда в любой момент можно сказать "это очевидно", делая своё утверждение а) верным б) не требующим доказательства.
1
 Аватар для es_
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459
16.02.2017, 16:21
Цитата Сообщение от Evg Посмотреть сообщение
Когда я учился в институте, то один преподаватель рассказал. Сам он электронщик, разрабатывает цифровые устройства для компутеров. Большинство таких людей традиционно слабо разбираются в программировании - имеют некоторую базу, чтобы уметь оттестировать свой девайс, но программерского мышления нет. Он долго считал, что программист сядет и подумает, набросает в голове схему программы, а потом её реализовывает. В какой-то момент он начал наблюдать (для самообразования) за тем, как работаю программисты. Для него было большим открытием, что программист работает как художник. Художник обычно нарисует маленький фрагмент, отойдёт и посмотрит, как он выглядит. Потом другой фрагмент, опять отойдёт. Потом увидит, что вместе они не смотрятся, и поверх этого ещё раз перерисует. Так же и программист. Сначала что-то сделает и посмотрит, потом ещё сделает и посмотрит, потом когда ничаниает более-менее вырисовываться вся логика - начнёт всё это переделывать
Смело можно напечатать эту цитату красивыми буквами и повесить на стену, чтобы напоминала нам о том какую же мы все-таки замечательную профессию/хобби выбрали.
0
Заблокирован
16.02.2017, 16:41
Цитата Сообщение от Evg Посмотреть сообщение
Он долго считал, что программист сядет и подумает, набросает в голове схему программы, а потом её реализовывает.
Просто он думал, что программисты делают все как надо, как инженеры, или как художники: сначала делают прототип(эскиз), а потом его доводят до ума. А на самом деле, они не художники и не инженеры, а быдлокодеры, которые "мажут и перемазывают" методом тыка. Причем, среднестатистический быдлокодер будет оптимизировать до усера какое нибудь отнюдь не узкое место, просто потому что "он может", что еще на порядки все усугубляет.
0
 Аватар для es_
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459
16.02.2017, 17:14
Цитата Сообщение от asmquest Посмотреть сообщение
А на самом деле, они не художники и не инженеры, а быдлокодеры, которые "мажут и перемазывают" методом тыка.
Некоторые программисты именно так и работают.
Работаю в одном кабинете вместе с другими инженерами-программистами, а ещё с инженерами-схемотехниками и инженерами-конструкторами. И могу сказать точно, что методом тыка могут работать и программисты и схемотехники и конструктора.
А так же каждый из представителей этих профессий может работать по вышенаписанному Вами принципу:
Цитата Сообщение от asmquest Посмотреть сообщение
сначала делают прототип(эскиз), а потом его доводят до ума.
Так вот когда каждый из них доводит до ума свой проект – это выглядит, как когда художник доводит свою картину до совершенства.
НО нет ничего плохо в том, что на начальных этапах проектирования каждый из них может всё перечеркнуть и начать сначала, пока не выстроил всю картину будущего реализованного проекта у себя в голове.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
17.04.2017, 11:05
Цитата Сообщение от @KOT@ Посмотреть сообщение
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп?
Иногда (даже чаще всего) легче написать простые функции,
Пока я не понимаю в чём преимущества такого подхода:
квадрат.нарисовать, круг.стереть, треугольник.площадь,
перед вот таким:
квадрат_нарисовать(), круг_стереть(), треугольник_площадь().
?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.04.2017, 16:26
Цитата Сообщение от CoderHuligan Посмотреть сообщение
перед вот таким:
квадрат_нарисовать(), круг_стереть(), треугольник_площадь().
А это тот же подход. То же ООП. Только без поддержки ООП синтаксисом языка.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
17.04.2017, 17:26
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А это тот же подход. То же ООП. Только без поддержки ООП синтаксисом языка.
Вот и я так думаю...
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
17.04.2017, 17:28
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Пока я не понимаю в чём преимущества такого подхода:
квадрат.нарисовать, круг.стереть, треугольник.площадь,
перед вот таким:
квадрат_нарисовать(), круг_стереть(), треугольник_площадь().
В первом случае нужный метод может выбираться динамически. Во втором случае нужный метод выбирается во время компиляции.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.04.2017, 17:58
Цитата Сообщение от Shamil1 Посмотреть сообщение
В первом случае нужный метод может выбираться динамически. Во втором случае нужный метод выбирается во время компиляции.
Вот в том и причина доработки синтаксиса. Для того чтобы динамическую диспетчеризацию писать так же кратко как и статическую.
(Triangle->VMT[DrawProcId])(Triangle); уже воспринимается гораздо хуже чем Triangle->Draw();
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
14.07.2017, 19:31
Цитата Сообщение от CoderHuligan Посмотреть сообщение
квадрат.нарисовать, круг.стереть, треугольник.площадь,
перед вот таким:
квадрат_нарисовать(), круг_стереть(), треугольник_площадь().
Первое можно приближённо представить в виде
нарисовать(квадрат, способ_рисования_квадрата() ), стереть(круг, способ_стирания_круга()) и т.п. Причём функция "способа" объявляется не где-то там в массиве возможных способов (массиве указателей на функции), а непосредственно в блоке бывшей структуры, а ныне - класса. С возможностью автоматически перенаправлять на аналогичные по действию функции, написанные для подобных объектов.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
15.07.2017, 01:55
Цитата Сообщение от TRam_ Посмотреть сообщение
Первое можно приближённо представить в виде
нарисовать(квадрат, способ_рисования_квадрата() ), стереть(круг, способ_стирания_круга()) и т.п. Причём функция "способа" объявляется не где-то там в массиве возможных способов (массиве указателей на функции), а непосредственно в блоке бывшей структуры, а ныне - класса. С возможностью автоматически перенаправлять на аналогичные по действию функции, написанные для подобных объектов.
Ну, во-первых,

нарисовать(квадрат)
стереть(круг)

и т.д., конкретная реализация определяется по типу аргумента. Обычной программирование, управляемое данными.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
15.07.2017, 02:33
Цитата Сообщение от korvin_ Посмотреть сообщение
конкретная реализация определяется по типу аргумента
Ну в том то и дело. В ООП реализация непосредственно встраивается в суть аргумента, в то время как без ООП аргумент и реализация существуют независимо.

Добавлено через 7 минут
И что ООП в первом (грубом) приближении являет собой работу с указателями на функции, записанными внутрь аргумента, и которым этот самый аргумент передаётся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.07.2017, 02:33

Стоит ли учить ООП в одно время с Яп
Добрый день! Начал активно изучать c#. Читаю Шилдта в свободное от учебы время и стараюсь практиковаться и всё выходит пока нормально. Но...

Как использовать ООП в WinAvr
Класс я создал. А вот объект класса создать не получается! Полазив по интернету выяснил что оператор new не поддерживается компилятором! ...

Js class как правильно использовать ООП
Накидал вот такой простенький код, авторизация проходит, data.Access_token существует, но в this.Access_token почему то не сохраняется, не...

Когда следует использовать ООП в РНР?
Когда стоит учить ооп в РНР, если новичок в РНР? Стоит ли писать весь код в стиле ооп ?

WITH AS стоит ли использовать
Использую СУБД Postgresql, есть запрос SELECT * FROM Table1 WHERE Filed1 IN (SELECT Fileld1 FROM Table2 WHERE Fileld2='A' AND...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
560
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru