2012-06-25 18 views
13

me encontré con esta línea en un libro sobre WCF:¿Cuál es la diferencia entre un lenguaje orientado a componentes y orientado a objetos?

... y los idiomas utilizados para escribir componentes COM (tales como C++ y Visual Basic) fueron, en el mejor, pero no orientado a componente orientado a objetos. ..

¿Cuál es la diferencia entre los dos?

+1

Buena pregunta. También enviaría un correo electrónico al autor para pedirles que quizás respondan esta pregunta aquí. –

+0

Raramente enlace [Wikipedia] (http://en.wikipedia.org/wiki/Component-based_software_engineering#Differences_from_object-oriented_programming), pero cuando lo hago ... ¿O necesita una respuesta más detallada?) – raina77ow

+2

Cuando se habla de COM, podría haber querido decir que no tenían soporte directo/integrado para trabajar con/crear objetos COM. Viéndolo de forma ligeramente diferente, las posibilidades son bastante buenas de que no se refiriera demasiado a la técnica, y simplemente estaba buscando una manera de distinguir el "nuevo brillante" del "viejo aburrido", así que se le ocurrió una frase de marketing que suena razonable. –

Respuesta

7

Mi opinión/comprensión es probablemente incorrecta y me voy a disparar en llamas por escribir esto.

Objeto Orientado a "mí" significa una forma de reconocer los modelos de datos clave esenciales para el contexto del problema y los métodos correspondientes que manipulan el estado de estos datos, también dentro del contexto del problema. Es un patrón para organizar datos. Otro patrón se organiza simplemente sobre la base de funciones subdivididas en niveles manejables: procedurales.

Patrón orientado a componentes no le importa mucho cómo organiza sus diferentes piezas de modelos de datos, pero cómo los ata. Así es como hablan el uno al otro. Podría ser de muchas formas COM/RPC, servicios web (RESTO/SOAP), etc. Eso es un acoplamiento flojo o acoplamiento ajustado.

Y el autor está tratando de decir que las capacidades COM se construyeron con un lenguaje que no proporciona instalaciones COM incorporado a ella :)

Mi entendimiento es que la afirmación es incorrecta como la elección de tie- la creación de los componentes, es una abstracción a un nivel superior al que proporciona el lenguaje como C/C++. COM solo proporciona una de las maneras de atar los componentes.

0

Aquí es mi opinión,

Herencia frente Interfaces parece ser un tema que se menciona mucho cuando se habla de la 2.

También creo que el diseño de componentes implica que se trata de cajas negras

El diseño de componentes también parece abarcar sistemas que van más allá de un espacio de memoria único. Así que llamar a servicios web u otros servicios remotos.

No diría que estos son paradigmas competitivos, sino diferentes paradigmas.

Cuestiones relacionadas