Аспектно-ориентированное программирование

Недавно услышал про некое "Аспектно-ориентированное программирование". Нет, ну я могу понять там объектно-ориентированное (ООП) или интерфейсно-ориентированное (ИОП), но блин аспектно-ориентированное...

Что это такое вообще?

Чем оно отличается от интерфейсно-ориентированного? ООП?

Итак, по порядку по все перечисленные виды программирования

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

Аспектно-ориентированное программирование базируется на изучение того, сколько и каких частей или компонентов тербуется для взаимодействия с системой.

Основной упор - на процесс взаимодействия этих компонентов.

  • Интерфейсно-ориентированное программирование

Интерфейсно-ориентированное программирование - это подход, основанный на программировании по контракту. Ни одна часть интерфейса не зависит от того как реализована другая, вся коммуницакия между ними описана в контракте. Веб-сервисы на основе WSDL наиболее известный пример этого подхода.

  • Объектно-ориентирование программирование

Объектно-ориентированное программирование основывается на принципах абстракции, инкапсуляции, полиморфизма и наследования. Классы реализуют эти концепции для построение объектов , контролирующих или реализующих систему.