Dentro del paradigma orientado a objetos, que optan por utilizar las clases porque nos ayudan a romper el sistema, y proporcionar beneficios secundarios agradables tales como la encapsulación, la separación de responsabilidades, la herencia, modularidad, etc.Terminología: ¿Cuál es la diferencia entre una clase y un componente?
Si nos fijamos en una sistema de software a nivel de componentes, ¿podemos simplemente tratar los componentes de la misma manera conceptual, es decir, un componente es simplemente una "Gran Clase"? ¿O hay más que eso?
¿Qué consideraciones adicionales deben darse al diseñar componentes?
EDIT:
Sé que una clase y un componente son cosas diferentes. También entiendo que un componente puede contener muchas clases, cada una de las cuales tiene sus propios roles y responsabilidades.
Veré si puedo explicarme mejor.
- Las clases nos permiten resolver problemas más grandes porque nos permiten pensar y diseñar de manera más abstracta.
- Existen reglas & técnicas para determinar cómo desglosar y asignar datos y funcionalidad a las clases.
Parece una situación muy similar a la del diseño de componentes, solo que a un nivel más alto de abstracción. ¿Las técnicas utilizadas para determinar qué clases son necesarias se amplían a los componentes, y/o hay otras cosas que afectan el diseño de un sistema de alto nivel que no se aplican al nivel de abstracción de la clase?
compruebe también http://stackoverflow.com/questions/1027875/in-a-software-project-how-would-you-differentiate-a-component-from-a-module – dfa