Back to questions
Junior — Middle
62
Как отличить объектно-ориентированный подход от функционального в программировании?
Companies where asked
GGSel
Answer from AI
sobes.tech AI
Объектно-ориентированный (ООП) и функциональный подходы отличаются по основным принципам:
-
ООП строится вокруг объектов — сущностей, которые объединяют данные и методы для работы с ними. Основные концепции: классы, наследование, инкапсуляция, полиморфизм.
-
Функциональное программирование фокусируется на чистых функциях, которые не изменяют состояние и не имеют побочных эффектов. Здесь важны функции высшего порядка, неизменяемость данных, рекурсия.
Пример на Python:
# ООП
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
c = Counter()
c.increment()
print(c.count) # 1
# Функциональный стиль
from functools import reduce
numbers = [1, 2, 3, 4]
sum_numbers = reduce(lambda x, y: x + y, numbers)
print(sum_numbers) # 10
В ООП состояние хранится в объектах, а в функциональном подходе — данные неизменяемы, а вычисления выражаются через функции.