Субъектно-ориентированное программирование

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Парадигмы программирования
 • Императивная
(контрастирует с декларативной)
Процедурная
Структурная
Аспектно-ориентированная
Объектно-ориентированная
Агентно-ориентированная
Компонентно-ориентированная
Прототипно-ориентированная
Обобщённое программирование

 • Декларативная
(контрастирует с императивной)

Чистота языка
Чистота функции
Функциональная
В терминах Рефал-машины
Аппликативная
Комбинаторная
Бесточечная[en]
(чистая конкатенативная)
Логическая
Ограничениями

 • Конкатенативная
 • Векторная[en]
 • Метапрограммирование

Языково-ориентированная
Предметно-ориентированная
Пользователями[en]
Автоматизация процесса программирования
Рефлексивность
Гомоиконность[en]

 • Связанные темы

Программирование в крупном и мелком масштабе[en]
Модульность
Полиморфизм
Продолжения и CPS[en]*
Параллелизм и конкурентность

 • Методы и алгоритмы

Автоматное
Динамическое
Потоков данных
Событийно-ориентированное
Реактивное
Сервис-ориентированное

Субъе́ктно-ориенти́рованное программи́рование (англ. subject - oriented programming, SOP; в дальнейшем СОП) — метод построения объектно-ориентированных систем, как композиции субъектов. Однозначный общепринятый перевод термина subject-oriented programming на русский язык на сегодняшний момент не выработан[1].

В целом СОП включает:

  • разбиение системы на субъекты;
  • написание правил для их правильной композиции.

СОП дополняет объектно-ориентированное программирование (в дальнейшем ООП), решая проблемы, возникающие при разработке больших систем, при решении задач интеграции и переносимости.

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

Сравнение с ООП[править | править вики-текст]

  • Объекту необходимо конкретно указать, какие он должен выполнить методы, чтобы достичь результата.
  • Субъекту необходимо конкретно указать какого результата необходимо ему достичь, а объект сам выбирает методы, позволяющие это сделать.

Есть и другой способ обобщения объектно-ориентированного программирования (см. Везенспрограммирование)

Примечания[править | править вики-текст]

  1. Термин в клетке К.Курбатов. «Компьютерра» №16 от 27 апреля 2006 года

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]