Значительные претенденты на ООП - PullRequest
15 голосов
/ 03 июня 2009

Насколько я понимаю, ООП является наиболее часто используемой парадигмой для крупномасштабных проектов. Я также знаю, что некоторые меньшие подмножества больших систем используют другие парадигмы (например, SQL, который является декларативным), и я также понимаю, что на более низких уровнях вычислений ООП на самом деле невозможно. Но мне кажется, что обычно решения более высокого уровня почти всегда собираются ООП-модой.

Существуют ли сценарии, когда действительно не ООП-парадигма на самом деле является лучшим выбором для крупномасштабного решения? Или это неслыханно в наши дни?

Я удивлялся этому с тех пор, как начал изучать CS; легко почувствовать, что ООП - это некая нирвана программирования, которая никогда не превзойдет.

Ответы [ 12 ]

0 голосов
/ 03 июня 2009

Людям нравится думать о различных вещах как о «объектах» и классифицировать их, поэтому нет сомнений, что ООП так популярен. Тем не менее, есть некоторые области, где ООП не получила большей популярности. Большинство систем используют реляционные базы данных, а не объективные. Даже если вторые содержат некоторые заметные записи и лучше подходят для некоторых типов задач, реляционная модель выбрана не случайно из-за ее популярности, доступности инструментов, поддержки и того факта, что реляционная модель на самом деле является математической концепцией, в отличие от ООП.

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

0 голосов
/ 03 июня 2009

Использование ООП облегчает управление кодом (как при изменении / обновлении / добавлении новых функций) и понимании. Это особенно верно для больших проектов. Поскольку модули / объекты инкапсулируют свои данные и операции с этими данными, легче понять функциональность и общую картину.

Преимущество ООП состоит в том, что легче (с другими разработчиками / руководством / заказчиком) обсудить LogManager или OrderManager, каждый из которых включает в себя определенные функции, а затем описать «группу методов, которые выгружают данные в файл» и «методы, которые отслеживают детали заказа».

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

...