АОП против ООП
AOP (Аспектно-ориентированное программирование) и OOP (Объектно-ориентированное программирование) - две парадигмы программирования. Парадигма программирования - это фундаментальный стиль компьютерного программирования. Парадигмы программирования отличаются тем, как представлен каждый элемент программ и как каждый шаг определяется для решения проблем. Как следует из названия, ООП фокусируется на представлении проблем с использованием реальных объектов и их поведения, в то время как АОП занимается разбивкой программ на отдельные сквозные задачи..
Что такое АОП?
AOP - это парадигма программирования, которая разбивает программу на сплоченные области функциональности (называемые проблемами), которые охватывают несколько областей, чтобы повысить модульность. Поддержка абстракций (таких как классы, методы и т. Д.) Для группировки и инкапсуляции проблем в уникальных объектах предоставляется во многих других парадигмах программирования. Но проблемы (такие как «Ведение журнала») являются примерами сквозных проблем, потому что на каждую зарегистрированную часть системы влияет стратегия, используемая для ведения журнала. Основным направлением всех реализаций АОП является создание подходящих сквозных выражений, позволяющих охватить все проблемы в одном месте..
Что такое ООП?
В ООП основное внимание уделяется размышлению о проблеме, которая должна быть решена с точки зрения элементов реального мира, и представлению проблемы с точки зрения объектов и их поведения. Классы изображают абстрактные представления объектов реального мира. Классы похожи на чертежи или шаблоны, которые собирают похожие элементы или вещи, которые можно сгруппировать вместе. Классы имеют свойства, называемые атрибутами. Атрибуты реализованы как глобальные переменные и переменные экземпляра. Методы в классах представляют или определяют поведение этих классов. Методы и атрибуты классов называются членами класса. Экземпляр класса называется объектом. Следовательно, объект - это структура данных, которая очень похожа на некоторый объект реального мира..
Существует несколько важных концепций ООП, таких как абстракция данных, инкапсуляция, полиморфизм, обмен сообщениями, модульность и наследование. Как правило, инкапсуляция достигается путем придания атрибутам приватности при создании открытых методов, которые можно использовать для доступа к этим атрибутам. Наследование позволяет пользователю расширять классы (называемые подклассами) из других классов (называемых суперклассами). Полиморфизм позволяет программисту заменить объект класса вместо объекта его суперкласса. Как правило, существительные, найденные в определении проблемы, непосредственно становятся классами в программе. И точно так же глаголы становятся методами. Некоторые из самых популярных языков ООП - это Java и C #.
В чем разница между АОП и ООП?
Основное различие между ООП и АОП состоит в том, что цель ООП состоит в том, чтобы разбить задачу программирования на объекты, которые инкапсулируют данные и методы, в то время как цель АОП состоит в том, чтобы разбить программу на сквозные задачи. На самом деле, АОП не является конкурентом ООП, потому что оно возникло из парадигмы ООП. АОП расширяет ООП, решая несколько проблем. АОП представляет изящные способы реализации сквозных задач (которые могли быть разбросаны по нескольким местам в соответствующей реализации ООП) в одном месте. Таким образом, АОП делает программу более чистой и более слабой.