The Artima Developer Community
Sponsored Link

Manageability Pro
Do Aspects Supercede Components?
by Carlos Perez
June 10, 2003
Summary
More precisely, "Does Aspect Oriented Programming (i.e. AOP) supercede Component Models?".  It's an interesting question, something we all would like to know before the AOP hype machine gets to full gear.  To answer it, let's get our definitions straight first.

Advertisement

More precisely, "Does Aspect Oriented Programming (i.e. AOP) supercede Component Models?".  It's an interesting question, something we all would like to know before the AOP hype machine gets to full gear.  To answer it, let's get our definitions straight first.

AOP can be simply defined as the ablility to assert quantified statements over programs written by oblivious programmers. Special emphasis on the word oblivious.

A Component Model may have the following characteristics:

1.  A mechanism for dynamic extensions.

2. A mechanism of encapsulation that can be dynamically introspected.

3 . [omitted for brevity]

4. A defined lifecycle that conforms to the requirements of a Container.

5. A protocol for interacting with the container. This covers, how to find other components and their factories, how to reference and invoke other components, etc.  In otherwords, the functionality you have for POJOs used in the context of the container.

Clearly characteristics 1 and 2 are covered by the AOP definition. However characteristic 4 and 5 of component models are direct opposites of the "oblivious" requirements of AOP.  Lifecycle can of course be introduced by using AOP "introductions".  However, the notion of a context is conspicously absent in our present notion of AOP.

Talk Back!

Have an opinion? Be the first to post a comment about this weblog entry.

RSS Feed

If you'd like to be notified whenever Carlos Perez adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Carlos E. Perez has been an object-oriented practitioner for over a decade. He holds a Bachelor's Degree in Physics and a Master's Degree in Computer Science from the University of Massachusetts. He has polished his craft while working in IBM's Internet Division and IBM's TJ Watson Research Center in Hawthorne, New York. He now works for a startup 1/100,000th the size of his former employer. He writes about topics covering emerging aspect and object oriented paradigms, loosely coupled architecture, open source projects and Java evangelism.

This weblog entry is Copyright © 2003 Carlos Perez. All rights reserved.

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use