1. Основные понятия
AspectJ-это реализация на основе Java для программирования аспектов. Это добавляет новую концепцию Join Point к Java, но на самом деле это просто название существующей концепции Java. Он добавляет несколько новых структур к языку Java: Pointcut, уведомление (советы), декларацию между типом (декларация между типом) и аспект (аспект). Наклоны и уведомления динамически влияют на поток программы, декларации между типами являются статическими классовыми иерархическими структурами программы, а касательные являются инкапсуляциями всех этих новых структур.
Концепции, основанные на разделах, точках соединения, касательных точках и уведомлениях, следующие:
Аспект: объявление аспекта аналогична декларации классов в Java, и оно содержит некоторые точечные и соответствующие советы в аспекте.
Совместная точка: представляет собой точку, четко определенную в программе.
Pointcut: представляет собой группу совместных точек.
Консультации: советы определяют конкретные операции, которые будут выполнены программной точкой, определенной в Pointcut.
Точка соединения является подходящей точкой в потоке программы. Tangent собирает определенный набор точек соединения и значения в этих точках. Уведомление - это код, выполненный, когда прибывает точка подключения, и это динамические части аспекта. Фактически, точка подключения похожа на утверждение в программе, а касательная точка - это точка останова, установленную в конкретном утверждении. Эта точка поколения. Существует также много различных типов деклараций между типами в AspectJ, что позволяет программистам изменять статическую структуру, имя, члены класса и отношения между классами. Аспект в аспекте-это модульная единица, которая вырезает фокус. Их поведение аналогично классам в Java, но также инкапсулирует обрезание точек, уведомления и декларации между типами.
2. Как разработать программы AOP на основе инструментов разработки AJDT: AspectJ?
Следуйте инструкциям на веб -сайте AJDT, чтобы установить плагин AJDT в Eclipse http://www.eclipse.org/ajdt/
Создать проект AspectJ Project
Провести разработку кода (в этой статье приведен простой пример)
3. Простой пример:
Кода -копия выглядит следующим образом:
пакет aop.test;
публичный интерфейс фигурированный элемент {
public void setxy (int x, int y);
public void Draw ();
}
Кода -копия выглядит следующим образом:
пакет aop.test;
Публичный класс точка реализует фигуры {
Public int x;
частный инт;
public int getx () {
возврат x;
}
public String setx (int x) {
System.out.println («Установить x значение: x ="+x);
this.x = x;
Возврат "возвращаемое значение - x ="+x;
}
public int gety () {
вернуть Y;
}
public void sety (int y) {
this.y = y;
}
public point () {
}
public point (int x, int y) {
this.x = x;
this.y = y;
}
@Override
public void setxy (int x, int y) {
this.x = x;
this.y = y;
System.out.println ("Point setxy: x ="+x+", y ="+y);
}
@Override
public void Draw () {
System.out.println ("Point Draw");
}
@Override
public String toString () {
вернуть "точка: x ="+x+", y ="+y;
}
}