Компонента в моем понимании:
Логическая единица выполняюшая те или иные функции и работаюшая как единое целое. При этом состояние компоненты скрыто от постороних кодов. Как правило компонента не зависит от внешних условий (Принцип: Все свое ношу с собой
). Изменение состояния компонеты осушествляется через вызовы функций-членов данной компоненты.
Компонента может быть реализована:
1. В стиле структурного программирования.
2. В одном едином объекте.
3. В нескольких объектах, связанных вместе.
В этом большое различие Компонентного программирования от ООП. Компонента может быть составной частью другой компоненты.
Утверждение:
допустим, у меня есть 3 компоненты, у одной из которых есть данные и функция предоставляющая эти данные. Две другие имеют функции, которые обрабатывают эти данные по-своему
Не совсем верно. Это будут не 3 отдельных компоненты. А 1 с несколькими реализациями.