@jesudode

Какие проблемы в программировании решает ООП?

“OO seems to bring at least as many problems to the table as it solves.”
Jeff Atwood.


О каких проблемах, которые решаются в ООП, идет речь?
  • Вопрос задан
  • 1382 просмотра
Решения вопроса 1
@immaculate
Программист-путешественник
ООП позволяет действительно управлять сложностью, как сказали выше, и повышает возможность повторного использования кода.

Но ООП языков много, и даже четкого определения, что такое ООП, и в каких ситуациях его использовать, не существует.

Например, когда я смотрю на код на Java, мне кажется, что в нем огромное количество бойлерплейта и переусложнений типа:
EnterpriseBusinessFactoryJavaBeanFactoryFacade
.factoryMethodCreateDependencyInjectionStrategyMethod()


Как и с любым другим инструментом: можно использовать ООП с умом и по назначению, а можно городить десятки паттернов, абстрактных классов, фабрик и т.п., чтобы напечатать "Hello, world". Явно определенного пути от второго к первому не существует. Врожденные способности, анализ, и много-много практики.

Но говорить, что это врожденный недостаток ООП — явный clickbait. Точно так же можно писать плохой код на любом языке программирования и в любой парадигме.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Beshere
@Beshere
Разработчик
Главная проблема, которую решает ООП - управление сложностью. Отсюда проистекает и главный недостаток ООП - если управлять сложностью не надо, то оно избыточно. Новичков отпугивает, если для написания хелло-ворлд требуется десяток строк кода.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Целиком и полностью зависит от контекста содержания.
Приведите ссылку на отрывок текста книги или публикации.

UPD: Прочитал: раз, два. (года 2006-2007!!!)
Ответ:
1. В ООП решаются проблемы уникальности, целостности структуры и управляемости проектного кода.

2. Автор никогда не создавал сложных приложений:
I'm not a fan of object orientation for the sake of object orientation.

3. Это банальное желание пропиариться, используя производительность ООП, как аргументацию (или просто неумение большинства управлять ею с помощью контроля состояний узлов структуры ООП).
Ответ написан
@AlexSku
не буду отвечать из-за модератора
Надо просто знать историю появления объектов.
Вот пример из Паскаля. Сначала были простые типы: логические, целые и дробные числа, символы. Много одинаковых данных привело к массиву (в т.ч. и символьным строкам). Добавились диапазон и множество. Разрозненные данные привели к записи (record, у сишников - структура). Добавили в структуру функции - появились объекты и классы. Появилось наследование и динамические (виртуальные методы). Отдельно пришли интерфейсы (структуры с одними функциями).
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
ООП позволяет программистам писать не программу целиком, а отдельные объекты.
Если вы наймете 1000 программистов чтобы написать одну программу в процедурном стиле, у вас огромное количество человекочасов уйдет просто на решение конфликтов и ожидание друг друга.
Но в ООП можно сраза архитектурно разделить написание программы на независимые объекты, и программисты смогут работать практически не мешая друг другу.

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

Войдите, чтобы написать ответ

Похожие вопросы