Добрый день, ~3 года писал на PHP исключительно в ООП стиле, далее перешел на JS + TypeScript, где почти все в процедурном или функциональном стиле (без ооп в общем, я уже запутался как это правильно называется).
И тут оглянувшись, я вижу что большинство вещей можно описать и с ООП подходом и ФП, но как будет правильно, когда и что использовать?
Я подходил к выбору с точки зрения:
Мне нужен объект, который будет хранить состояние/данные, и есть общие операции над этим состоянием?
Используем ООП плюшки (наследование/абстракцию/полиморфизм)?
- да = пишем в ООП стиле
- нет = пишем без ООП
Но, огромная куча вещей, начиная от MVC фреймворков, заканчивая маленькими библиотечками написана в ООП, независимо от того, нужно ли состояние, общие операции над данными и тп.
Яркий пример обычный контроллер в MVC:
class PageController {
public actionIndex() {
// что-то
}
public actionDelete() {
// что-то удаляем
}
}
Дак для чего и когда использовать ООП?
чтобы это было не просто "потому что я так привык"