Принимая общий контекст архитектуры программного обеспечения ...
Все объекты являются компонентами, но не все компоненты обязательно являются объектами.
Компоненты - это общее имя для элементов, используемых в представлениях из Типового представления Компонент-и-Соединитель. Представление Component-and-Connector описывает представления времени выполнения (или динамические), поэтому компоненты представляют собой структуры runtime (в отличие от структур static ) (Clements et al., Документирование архитектур программного обеспечения). : Взгляды и дальше) .
Компонент - это не что-то конкретное для конкретного языка, а скорее способ организации и размышления о структурах среды выполнения системы, чтобы люди, разрабатывающие систему, могли понять, как система, которую они создают, продвигает или препятствует определенным свойствам. Следовательно, следующие утверждения являются истинными:
- объект является компонентом
- некоторая концептуальная коллекция объектов является компонентом
- даже набор компонентов является компонентом
То, как вы разделите систему на компоненты, будет зависеть от того, какое значение вы хотите передать своим коллегам-разработчикам, и какие свойства вам нужны для вашей системы. Компоненты соединяются друг с другом во время выполнения - например, один объект создает экземпляр другого, веб-клиент подключается к веб-серверу, подписчик регистрируется на шине событий. Если вы используете объектно-ориентированный язык, такой как Java, все компоненты будут состоять из объектов.
Другие примеры компонентов, относящихся к архитектурным стилям Component-and-Connector, включают уровни (стиль N-уровня), фильтры (стиль конвейера и фильтра), объекты и компоненты. «Компонент» становится своего рода всеобъемлющим во многих описаниях архитектуры, поэтому лучше быть более конкретным, когда это возможно.