- La arquitectura basada en componentes es una rama de la ingeniería de software que proporciona un mayor nivel de abstracción que los principios de diseño orientado a objetos.
- La arquitectura basada en componentes no se centra en cuestiones como el protocolo de comunicación y el estado compartido.
- Esta arquitectura se centra en la descomposición del diseño en componentes lógicos que contienen eventos, métodos y propiedades.
- La arquitectura basada en componentes divide el problema en subproblemas y cada problema asociado a particiones de componentes.
- Proporciona un mayor nivel de abstracción que los principios de diseño orientado a objetos.
- No se centra en cuestiones como los protocolos de comunicación y el estado compartido.
Principios de la arquitectura basada en componentes
1. Extensible
Un componente puede ser extendido a partir de componentes existentes para proporcionar un nuevo comportamiento.
2. Reemplazable
Los componentes pueden ser fácilmente sustituidos por otros componentes similares.
3. Encapsulado
Los componentes exponen interfaces que permiten a quien los llama utilizar su funcionalidad y ocultan los detalles de los procesos internos o cualquier variable interna o estado.
4. Independiente
Los componentes son independientes. Puede ser diseñado para tener dependencias mínimas de otros componentes.
5. Reutilizable
Los componentes están diseñados para ser reutilizados en diferentes escenarios en diferentes aplicaciones.
6. No es específico del contexto
Los componentes están diseñados para operar en diferentes entornos y contextos. La información específica, como los datos de estado, deben ser pasados al componente en lugar de ser incluidos o accedidos por el componente.
Ventajas de la arquitectura basada en componentes
- La arquitectura basada en componentes reduce el coste de desarrollo y mantenimiento.
- Es reutilizable, lo que significa que se pueden utilizar componentes reutilizables para repartir el coste de desarrollo y mantenimiento entre varias aplicaciones.
- Aumenta la fiabilidad de todo el sistema a través de la reutilización.
- Es fácil de mantener y actualizar la implementación sin afectar al resto del sistema.
- Modifica la complejidad con el uso de un contenedor de componentes y sus servicios.
- Si las nuevas versiones compatibles están disponibles entonces es fácil reemplazar las versiones existentes sin ningún impacto en los otros componentes.