|AOP@Work: Enhance design patterns with AspectJ, Part 1
Design patterns have long been part of the experienced developer's tool chest. Unfortunately, because patterns can affect multiple classes, they can also be invasive and hard to (re)use. In this two-part article, the third in the AOP@Work series, Nicholas Lesiecki shows you how AOP solves this problem by fundamentally transforming pattern implementation. He examines three classic Gang of Four (GoF) design patterns (Adapter, Decorator, and Observer) and discusses the practical and design benefits of implementing them with aspect-oriented techniques.
|Articles||17 May 2005|
|AOP@Work: Component design with Contract4J
Design by Contract is a proven technique for clarifying component design details, documenting proper usage for clients, and testing usage compliance programmatically. In this final article in the AOP@Work series, Dean Wampler introduces Contract4J, a Design by Contract tool that specifies contracts using Java 5 annotations and evaluates them at run time using AspectJ aspects. Along with being a strong addition to your AOP toolkit, Contract4J offers insight into emerging trends in aspect-oriented design.
Also available in: Japanese
|Articles||11 Apr 2006|
|AOP@Work: Dependency injection with AspectJ and Spring
Dependency injection and aspect-oriented programming are complementary techniques, so it's natural to want to use them together. Follow along as Adrian Colyer explores the relationship between the two and shows you how you can combine them to facilitate advanced dependency injection scenarios.
|Articles||13 Dec 2005|
|AOP@Work: Unit test your aspects
AOP makes it easier than it's ever been to write tests specific to your application's crosscutting concerns. Find out why and how to do it, as Nicholas Lesiecki introduces you to the benefits of testing aspect-oriented code and presents a catalog of patterns for testing crosscutting behavior in AspectJ.
|Articles||01 Nov 2005|
|AOP@Work: AOP tools comparison, Part 1
AOP is a technology whose time has come, but how do you choose the right tool for your projects? In this first article in the new AOP@Work series, aspect-oriented programming expert Mik Kersten compares the four leading AOP tools (AspectJ, AspectWerkz, JBoss AOP, and Spring AOP) to help you decide which one is for you. In Part 1 of this two-part discussion, the author focuses on the tools' language mechanisms and the trade-offs imposed by the different approaches.
|Articles||08 Feb 2005|
|AOP@Work: Design with pointcuts to avoid pattern density
In "JUnit: A Cook's Tour," authors Erich Gamma and Kent Beck discuss the design of JUnit. They point out that TestCase, like key abstractions in many mature frameworks, has a high pattern density, making it easy to use but hard to change. In this fourth installment of the AOP@Work series, Wes Isberg revisits the Cook's Tour and shows you how using AOP pointcuts rather than object-oriented designs can help you avoid some of the pattern density that makes mature designs hard to change.
|Articles||14 Jun 2005|
|AOP@Work: Enhance design patterns with AspectJ, Part 2
Nicholas Lesiecki continues his discussion of the benefits of implementing design patterns with aspect-oriented techniques with this in-depth study of the Observer pattern. In this article of the AOP@Work series, he illustrates how AspectJ allows complex patterns to be converted into reusable base aspects, thus enabling framework authors to supply prebuilt libraries of patterns for developers to exploit.
|Articles||17 May 2005|
|AOP@Work: Next steps with aspects
Once you've taken the first plunge into aspects, you'll want to keep going and going, but it's never a good idea to travel without a map. In this article, esteemed aspect developer Ron Bodkin gives you a guided tour of the four stages of successful aspect adoption, from first experiments with tracing and testing all the way to building your own reusable aspect libraries.
|Articles||16 Mar 2006|
|AOP@Work: AOP and metadata: A perfect match, Part 1
In this first half of a two-part article, author Ramnivas Laddad provides a conceptual overview of the new Java metadata facility and shows where AOP could most benefit from the addition of metadata annotations. He then walks you through a five-part design refactoring, starting with a metadata-free AOP implementation and concluding with one that combines the Participant design pattern with annotator-supplier aspects.
|Articles||08 Mar 2005|
|AOP@Work: Check out library aspects with AspectJ 5
AspectJ 5's new language and deployment features make library aspects easy, and library aspects in turn promise to put AOP in the hands of mere mortals. Miraculously simple to use, they can be devilishly difficult to write. In this installment of AOP@Work series, Wes Isberg weaves a tale about 30 serious contenders in a world not too far from your own; along the way, you'll learn how to use and write library aspects and how to deliver solutions to believers and nonbelievers alike.
|Articles||17 Jan 2006|
|AOP@Work: AOP tools comparison, Part 2
In this second half of his two-part AOP tools comparison, aspect-oriented programming expert Mik Kersten focuses on the tools' integration with the development environment and build process, including a point-by-point comparison of the tools' IDE features. To help you make your final decision, the author concludes with a look at what's to come for these rapidly evolving tools, and provides a summary of each one's strengths and weaknesses. Note that this article addresses the implications of the recently announced merging of the AspectJ and AspectWerkz projects.
|Articles||08 Feb 2005|