Лекция №11Парадигмы программирования (часть 2)

Парадигма объектно-ориентированного программирования породила несколько парадигм, ее расширяющих:

  • компонентно-ориентированное программирование;
  • аспектное программирование;
  • сервисное программирование.

Эти парадигмы призваны решить проблемы, возникающие при разработке в чистом ООП-стиле.

Несмотря на все положительные качества ООП, у этой парадигмы программирования есть недостатки:

Аналогами объектов и классов в компонентном программировании являются компоненты — самостоятельные программные продукты, которые реализуют логически замкнутый набор функций системы (например, хранение данных). Интерфейс и реализация компонентов всегда разграничены, что упрощает многоязыковую и мультиплатформенную разработку. Интерфейс указывает, какие функции предоставляет компонент; кроме того, в нем указываются внешние компоненты, необходимые для его работы.

Аспектное программирование решает возникающую в ООП проблему реализации сквозной функциональности, то есть требований к программной системе, которые невозможно четко выделить в отдельные классы или методы (примеры: ведение лога, обработка исключительных ситуаций, синхронизация, кэширование). Код, касающийся сквозной функциональности, разбросан по многим классам, что затрудняет его модификацию и тестирование. Для решения этой проблемы используются аспекты — модули, которые сосредотачивают код сквозной функциональности и задают правила, при каких условиях этот код выполняется.

Сервисное программирование — развитие идеи компонентного программирования для распределенных приложений. В отличие от компонентов, которые, как правило, являются составными частями системы (например, в виде библиотек), сервисы расположены вне системы. Общение между системой и сервисом происходит при помощи высокоуровневых сетевых протоколов на основе HTTP. Большинство современных архитектур, поддерживающих компоненты, представляют их именно в виде сервисов.

Скачать презентацию