|
|
| Результаты опроса: используете ли вы ооп | |||
| да |
|
238 | 86.55% |
| нет |
|
37 | 13.45% |
| Голосовавшие: 275. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.76/461:
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|
Стоит ли использовать ООП?09.02.2010, 13:44. Показов 109221. Ответов 793
Метки нет (Все метки)
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп? Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами. Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
|
|
| 09.02.2010, 13:44 | |
|
Ответы с готовыми решениями:
793
Стоит ли использовать ООП -- часть вторая
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||
| 10.02.2010, 23:46 | ||
. К сожелению если я буду надолго останавливаться над не особо интересными мне вещами мой проект зачахнет... А я уж лучше пожертвую пока кое чем чтобы это чудо все таки вышло в свет, может кому и интересно будет, это же лучше чем если бы я провозился и забил? Конечно это непрофессионально, если бы я работал разработчиком я бы поступил по другому, разные приоритеты.
0
|
||
| 11.02.2010, 00:43 | ||
|
но если это раздражает - можно или самому на кухне готовить, или нанять повара-китайца, если денег много. но тогда нужно самому заботиться о приобретении и контроле продуктов, технологии приготовления, инструментах, помещениях, ... а с инкапсуляцией все просто: имеешь четкий интерфейс, а что за ним прячется - нас не касается до тех пор, пока нас это устраивает. про ооп объяснить еще на подобном уровне?
1
|
||
|
|
|
| 11.02.2010, 12:35 | |
|
novi4ok, твой пример вообще никак не объясняет отличие ООП от функционального программирования. Отличие должно быть в том, что "ресторан.поесть()" должно быть чем-то принципиально лучше, чем "поесть(&ресторан)". А этого отличия нет
0
|
|
| 11.02.2010, 13:15 | ||
|
0
|
||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 11.02.2010, 13:20 | |
|
На мой взгляд, смысл ООП - не в форме записи "ресторан.поесть()" или "поесть(&ресторан)" или даже "execute(&ресторан, "поесть")". Смысл - в выделении отдельной сущности "ресторан" и группировке вокруг него всего, что к нему относится. А дальше уже пошли технические приемы: инкапсуляция кухни, наследование от "места, где жрут" и т.д.
1
|
|
|
|
|
| 11.02.2010, 13:28 | |
|
Инкапсуляцию надо пояснять на примере, когда есть хотя бы ДВЕ сущности, которые надо отделить одно от другого и желательно много экземпляров разных сущностей. Во многих книгах делают аналогичную ошибку. Заводят класс "болт", поля класса "длина", "диаметр", методы "закрутить", "открутить" и говорят, вот вам, товарищи, инкапусляция. А потом новичок читает эту книгу и не может понять, зачем нужно писать в классах, вместо того, чтобы завести структуру "болт" и функцию "закрутить (const болт*)". Вот у возникает у людей ощущение, что инкапсуляция - это когда можно записать "болт.закрутить()" вместо "закрутить (&болт)". Т.е. пишут в какой-то степени правильные вещи, но на таких примерах, которые ну никак не дают ответов на вопросы "зачем" и "почему"
1
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 11.02.2010, 13:35 | |
|
класс "болт", поля класса "длина", "диаметр", методы "закрутить", "открутить".
И что такое бывает? Что болт умеет сам себя закручивать? //------------------------------------- Некоторые книги оставляют желать лучшего...
0
|
|
| 11.02.2010, 13:36 | ||
|
но сущность и удобство инкапсуляции - определить интерфейс, и, проектируя посетителя, не думать о том, как происходит заказ продуктов в ресторане (и вообще заказывает ли их кто-то, и есть ли вообще продукты ).
0
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
||
| 11.02.2010, 13:46 | ||
Класс человека-посети ля. метод: жратъ. Класс человека-официанта. метод: дать пожратъ.
0
|
||
| 11.02.2010, 13:56 | |
|
кстати, появление вопроса "стоит ли использовать ооп" вполне закономерно: стоит только посмотреть, какими темами пестрит раздел с/с++. люди учатся всему кроме того чем им придется заниматься. конечно, нужно понимать "что там, внутри" и "из чего изготавливают болты", но зачем на изготовлении болтов зацикливать будущемго инженера-машиностроителя? он вряд ли будет проектировать когда-нибудь новые болты (существует достаточно разновидностей), а живую машину он впервые увидит уже когда работу найдет (если).
0
|
|
|
|
||
| 11.02.2010, 14:00 | ||
|
1
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 11.02.2010, 14:11 | |
|
Evg:
Ясень пень. Одна есть фишка ООП, и она мне нравиться при передачи объекта в функцию им можно управлять через его методы. Добавлено через 53 секунды Я такие приёмы использую при работе с MFC.
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 11.02.2010, 14:13 | ||
|
1
|
||
| 11.02.2010, 14:26 | ||
|
0
|
||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 11.02.2010, 14:40 | |
|
И ещё классы помогают разгрузить мозг: память, так как каждый класс ассоциируется с определенным набором функций и данных.
К тому же в Visual Studio имеено на этом и построенная система подсказок. Добавлено через 10 минут По поводу инкапсуляции novi4ok надо примерно так: Официант даёт поесть, но что бы дать поесть, еду надо приготовить, Как она(еда) готовиться посетителя не волнует, вот инкапсуляция. Добавлено через 1 минуту Пример простой инкапсуляции: функция~процедура, в любом языке программирования.
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 11.02.2010, 14:41 | |
|
Официанта это, кстати, тоже не волнует. Инкапсуляция, блин :-)
1
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 11.02.2010, 14:47 | |
|
Функции класса: интерфейсы надо предоставить, а что в них происходит при вызове
и какие данные класса могут в ней использовать программиста использующего класс не должно волновать, максимум что волнует передаваемые параметры и возвращаемое значение. В технологии COM вообще инкапсуляция настолько сильна, что кроме абстрактных классов интерфейсов вообще ни чего не видно, полная реализация классов(компонентов) скрыта в бинарном виде.. Добавлено через 1 минуту Официанта это, кстати, тоже не волнует. Инкапсуляция, блин :-) Точно за был добавить, наверно сюда ещё повара надо добавить, которому посетитель вообще по
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 11.02.2010, 15:12 | |
|
Верно. При правильной инкапсуляции (разделение обязанностей объектов) повара абсолютно не интересует, что будет с едой, которую он приготовил, - то ли официант принесет ее клиенту, то ли отнесет жене домой, а может, выбросит в мусорную корзину..... :-) Его дело - приготовить качественную еду и выдать ее "вовне" кухни. Все.
1
|
|
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 11.02.2010, 15:21 | |
|
А вообще надо просто определение инкапсуляции, как правило русского языка:
может тогда вопрос будет закрыт... Добавлено через 2 минуты А кто-нибудь знает определение инкапсуляции? Добавлено через 4 минуты В книгах которые я читал определение размазано, как хочешь так и понимай.
0
|
|
|
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
|
|||
| 11.02.2010, 15:23 [ТС] | |||
|
Добавлено через 1 минуту
1
|
|||
| 11.02.2010, 15:23 | |
|
Стоит ли учить ООП в одно время с Яп Как использовать ООП в WinAvr Js class как правильно использовать ООП Когда следует использовать ООП в РНР? WITH AS стоит ли использовать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|