Chapter 15. Defining Aspect Relationships
Introduction
Aspects in AspectJ are objects in their own right and they benefit from the traditional object-oriented (OO) mechanisms that make object orientation such a great approach for software development.
When using the OO concepts of association and composition, then the rules for aspects are fairly simple: an aspect can contain or use other classes without using any unique syntax. If you ignore some irregular method signatures, a class can use an aspect as if it were just another class.
This chapter deals with the details of inheritance between aspects and classes and some of the special things to consider when defining these relationships.
15.1. Inheriting Pointcut Definitions
Problem
You want to create pointcut declarations in an aspect that can then be reused using inheritance.
Solution
Create an abstract aspect. Define within the abstract aspect the
reusable pointcut logic using the appropriate
public, protected, or
default access modifiers. Finally, inherit that
abstract aspect into your subaspects to reuse the declared pointcuts.
Discussion
Pointcuts are subject to a similar set of rules as normal methods
when using inheritance. If a pointcut is declared
public, protected, or
default, then its logic can be inherited and
reused within other aspects.
Example 15-1 shows an abstract aspect that provides a base for inheriting its defined pointcuts.
public abstract aspect ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access