Понятие программного компонента (ПК) (software component) — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Понятие программного компонента (ПК) (software component)

2020-11-03 167
Понятие программного компонента (ПК) (software component) 0.00 из 5.00 0 оценок
Заказать работу

В архитектуре ПО ПК (программный модуль) – произвольный и элемент структуры системы, решающий некоторые подзадачи и взаимодействующий с окружением через определенный интерфейс.

На диаграммах UML ПК (единицы сборки) — файлы с кодом, бинарные файлы, какие-либо документы, входящие в состав системы.

Компоненты развертывания – блоки, из которых строится компонентное программное обеспечение.

Компонент развертывания – структурная единица программной системы, обладающая четко определенным интерфейсом. Такой компонент независимо, удален или добавлен в состав некоторой системы, может включаться в состав систем других поставщиков.

Компонентный каркас (component framework)

Состав:

Компонентная модель (component model) – набор правил определения интерфейсов компонентов и их реализаций, а также правил, по которым компоненты работают в системе (регламентирующие жизненный цикл компонента) и взаимодействуют друг с другом

Набор базовых служб (basic services) обеспечивающих например, обнаружение компонентов в среде (сетевой), передачу данных между компонентами (через сетевое взаимодействие)

Примеры:

различные реализации J2EE,

.NET,

CORBA.

Компонентные фреймворки. Компонентная модель.

Структура фреймворка

Основы принципов внедрения зависимостей. Инверсия управления.

Внедрение зависимости.

Внедрение зависимостей — это стиль настройки объекта, при котором поля объекта задаются внешней сущностью. DI — это альтернатива самонастройке объектов.

class ClassA { var classB: ClassB }

Класс ClassA содержит экземпляр класса ClassB, поэтому мы можем сказать, что класс ClassA зависит от класса ClassB. Классу ClassA нужен класс ClassB для корректной работы.

Согласно первому подходу з, а во втором подходе мы переместили обработку зависимостей из зависимого класса в пользовательский класс.

Варианты создания:

  1. создавать зависимости в зависимом классе - зависимые классы отвечают за получение своих собственных зависимостей

 

class ClassA {

var classB: ClassB

fun someMethodOrConstructor() { classB = ClassB() classB.doSomething() }

}

Недостатки

§ когда нам нужно использовать ClassA, мы будем вынуждены использовать и ClassB, и заменить ClassB чем-то другим будет невозможно.

§ ClassA невозможно протестировать

§ СlassA должен знать, как создать ClassC и использовать его для создания ClassB.

  1. внедрять зависимости через пользовательский класс - обработка зависимостей в пользовательском классе

 

class ClassA {

var classB: ClassB

constructor(classB: ClassB){ this.classB = classB }

}

Недостатки

  • пользовательский код нетривиален и сложен в управлении.
  1. Ответственность за обработку зависимостей возлагается на третью сторону

 

  • фреймворки для внедрения зависимостей упрощают работу и позволяет избежать написания шаблонного кода
  • фреймворки предлагают способ определения полей (объектов), которые должны быть внедрены.
  • фреймворки позволяют определить, как нужно предоставить каждую зависимость

Типы внедрения зависимости. Scope.

Scope

singleton (Default) Scopes a single bean definition to a single object instance per Spring IoC container.

prototype Scopes a single bean definition to any number of object instances.

request Scopes a single bean definition to the lifecycle of a single HTTP request; that is, each HTTP request has its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext.

session Scopes a single bean definition to the lifecycle of an HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext.

application Scopes a single bean definition to the lifecycle of a ServletContext. Only valid in the context of a web-aware Spring ApplicationContext.

Реализация компонентного программирования в.NET.

EJB Возможности.

Эта технология обычно применяется, когда бизнес-логика требует как минимум один из следующих сервисов, а часто все из них:

· поддержка сохранности данных (persistence); данные должны быть в сохранности даже после остановки программы, чаще всего достигается с помощью использования базы данных

· поддержка распределённых транзакций

· поддержка параллельного изменения данных и многопоточность

· поддержка событий

· поддержка именования и каталогов (JNDI)

· безопасность и ограничение доступа к данным

· поддержка автоматизированной установки на сервер приложений

· удалённый доступ


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.