← Все вопросы

Зачем вообще новичку ООП, если всё решается функциями?

Задан 13 месяцев назад1.4к просмотров4 ответа
21

Пишу скрипты на функциях, всё работает. Друзья говорят "учи ООП". Не понимаю, какую реальную проблему оно решает. Это обсуждение, интересно мнение бывалых.

4 ответа

29

ООП решает проблему "данные и функции, которые с ними работают, разбросаны по коду". Класс склеивает их вместе.

Пока у тебя маленький скрипт — функций достаточно, и это нормально. Боль начинается, когда у тебя, скажем, 5 функций, и все принимают одни и те же 8 параметров (баланс, владелец, история операций...). Ты таскаешь этот ворох туда-сюда. Класс BankAccount прячет эти данные внутрь, и методы работают со своим состоянием:

acc = BankAccount("Аня", 1000)
acc.deposit(500)
acc.withdraw(200)
print(acc.balance)

Плюс наследование позволяет переиспользовать поведение, а полиморфизм — писать код, который работает с разными типами одинаково. Так что не отбрасывай функции, но как только видишь, что одни и те же данные постоянно ходят вместе — это сигнал, что просится класс.

Fkalkf fkdpkgok хороший ответ, но почему не отметили принятым? · 13 месяцев назад
Андрей Гошко @автор вопроса похоже хотел просто обсуждение, оставил без принятого · 12 месяцев назад
16

Честно? Для коротких скриптов ООП часто не нужно, и это ок. Оно начинает окупаться на больших проектах и в командной работе, где важна структура. Не учи его ради галочки — учи на реальной задаче, где данные и поведение хочется объединить.

12

Чтобы читать чужой код. Почти все библиотеки и фреймворки на классах, без понимания ООП ты в них утонешь.

-6

Не нужно оно, функций хватает всем.

Ivan Ivanov спорно: попробуй поддерживать большой проект на одних функциях и глобальных переменных 🙂 · 13 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект