Skip to main content
Patterns of Aspect-Oriented Design
Proceedings of EuroPLoP. 2007.
  • Black P. Andrew, Portland State University
  • James Noble, Imperial College London
  • David J. Pearce, Victoria University of Wellington
  • Arno Scmidmeir, AspectSoft
Document Type
Conference Proceeding
Publication Date
  • Computer software -- Development,
  • Programming languages (Electronic computers),
  • Aspect-oriented software development
Aspect-oriented programming languages are becoming commonplace, and programmers are accumulating experience in building and maintaining aspect-oriented systems. This paper addresses how the use of these languages affects program design: how aspect-oriented languages change the design space, which designs should be emulated and which avoided, and the strengths and weaknesses of particular kinds of design. We identify five patterns of aspect-oriented design: Spectator, Regulator, Patch, Extension, and Heterarchical Design. For each pattern, we describe the problem it solves, show how aspect-oriented language features are used in the pattern, give characteristic examples of the pattern’s use, and assess its benefits and liabilities. Our patterns provide the beginnings of a taxonomy of aspect-oriented design. We believe that they should help programmers to understand and evaluate existing aspect-oriented designs, to improve new designs, to make better use of the aspect-oriented features of new programming languages, and also guide those who wish to implement these patterns in non aspect-oriented languages.

This is the author's version of a paper which was subsequently published in Proceedings of EuroPLoP. 2007.

Persistent Identifier
Citation Information
Noble, James, et al. "Patterns of Aspect-Oriented Design." EuroPLoP. 2007.