El blog del burgués

11 septiembre 2010

Programación orientada a componentes

Filed under: Uncategorized — elburgues @ 9:22 AM

El término componente quizás sea uno de los más confusos en programación. Un componente es el responsable de exponer lógica hacia los clientes, siendo los clientes cualquier cosa que use al componente. Un componente puede ser una clase, siendo el cliente otra clase. Entonces, ¿en qué se diferencia la programación orientada a componentes de la programación orientada a objetos? Pues ahí reside la confusión que suele envolver al término componente, en saber dónde trazar las líneas que separan:

  • La clase que implementa cierta lógica.
  • La entidad física que contiene a la clase (dll).
  • La lógica asociada para hacer uso de la clase (información de tipos, política de seguridad, información de versiones…).

Digamos que la programación orientada a objetos se focaliza en las relaciones que hay entre las clases combinadas dentro de un gran ejecutable binario, mientras que la programación orientada a componentes se centra en módulos intercambiables que trabajan de forma independiente y de los cuales no es necesario saber nada acerca de sus implementación interna. La diferencia entre ambas técnicas es la manera que tienen ellas de ver a la aplicación final. En la programación orientada a objetos, el resultado es un código binario monolítico, todas las clases se localizan en él, mientras que la programación orientada a componentes se puede imaginar como las piezas del lego, un cambio en la implementación de una de las piezas está disponible inmediatamente para todo cliente que la use, sin necesidad de recompilar.

En la programación orientada a objetos, las aplicaciones son modeladas con jerarquías de clases complicadas, pero esa es una forma pobre de alcanzar la reutilización de código. Para derivar de una clase base y extenderla, tienes que estar muy familiarizado con los detalles de implementación de la clase base, para estar seguro de cómo va a afectar a los clientes los cambios que tú hagas. Es lo que se conoce con el nombre de reutilización de caja blanca. La programación orientada a componentes, lo que predica es la llamada reutilización de caja negra, es decir, permite usar un componente existente sin necesidad de conocer los detalles internos de su implementación. Esto se logra a través de las interfaces. En vez de diseñar complejas jerarquías de clases, se diseñan interfaces usadas como contratos entre componentes, clientes y servidores. O sea, que hay que tender ha diseñar jerarquías de clases simples y centrarse en la programación orientada a interfaces.

Una aplicación orientada a componentes es más fácil de extender (cumplir con nuevos requisitos a través de nuevos componentes sin tocar los ya existentes), reduce los costes de mantenimiento de las aplicaciones y normalmente sus desarrollos suelen ser más cortos en términos de tiempo.

Los principios más importantes de la programación orientada a componentes son:

  1. La separación de la interfaz de la implementación.
  2. La compatibilidad binaria.
  3. La independencia del lenguaje.
  4. La transparencia en la localización.
  5. La gestión de la concurrencia.
  6. El control de versiones.
  7. La seguridad basada en componentes.

.NET te habilita para cumplir con cada uno de estos principios, pero no obliga. En próximas entradas iré explicando cosas de cada uno de ellos.

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: