Подтвердить что ты не робот

В чем разница между компонентно-ориентированным и объектно-ориентированным языком?

Я столкнулся с этой строкой в ​​книге о WCF:

... и языки, используемые для написания COM-компонентов (например, С++ и Visual Basic), были в лучшем случае объектно-ориентированными, но не компонентно-ориентированными...

В чем разница между двумя?

4b9b3361

Ответ 1

Мое мнение/понимание, вероятно, неверно, и я собираюсь застрелить его, чтобы написать это.

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

Компонентно ориентированный шаблон не заботится о том, как вы организовываете свои различные модели данных, но , как вы связываете их. Так они общаются друг с другом. Это может быть много способов COM/RPC, веб-сервисов (REST/SOAP) и т.д. Это развязка или плотная связь.

И автор просто пытается сказать, что возможности COM были построены с использованием языка, который не предоставляет COM-средства, встроенные в него.

Мое понимание заключается в том, что утверждение неверно как выбор связывания компонентов, является абстракцией на более высоком уровне, чем тот, на котором язык, например, C/С++. COM просто обеспечивает один из способов привязки компонентов.

Ответ 2

Вот мой прием,

Наследование и интерфейсы, по-видимому, являются темой, о которой много говорится при обсуждении 2.

Я также думаю, что дизайн Component подразумевает, что вы имеете дело с черными ящиками

Компонентный дизайн также охватывает системы, выходящие за пределы одного пространства памяти. Поэтому вызовите веб-службы или другие удаленные службы.

Я бы не сказал, что это конкурирующие парадигмы, но разные парадигмы.