Аспектно-ориентированное программирование - предмет, который мне очень трудно найти. В моем старом учебнике по программному обеспечению упоминается только кратко (и неопределенно), а википедия и различные другие учебники/статьи, которые я смог найти на ней, дают ультра-академические, сильно абстрактные определения того, что это такое, как использовать его, и когда его использовать. Определения, которые я просто не понимаю.
Мое (очень плохое) понимание АОП заключается в том, что существует много аспектов создания высококачественной программной системы, которая не подходила бы аккуратно в симпатичный небольшой сплоченный пакет. Некоторые классы, такие как Loggers, Validators, DatabaseQueries и т.д., Будут использоваться по всей вашей кодовой базе и, следовательно, будут сильно связаны. Мое (опять же, плохое ) понимание АОП заключается в том, что оно связано с лучшими практиками обращения с этими типами "универсально связанных" пакетов.
Вопрос: Это правда, или я полностью отключен? Если я полностью ошибаюсь, может кто-то, пожалуйста, дайте краткое, разъяснительное объяснение для того, что такое АОП, пример так называемого аспекта и, возможно, даже представить простой пример кода?