Having some experience in content management, I'd think that under the covers this would not be done via aspects but rather via mix-in interfaces and/or composition.
Alan Kent wrote: > Jess Holle wrote: > >> So what is AOP good for? It's a powerful tool for building certain >> types of library/framework capabilities. ... >> > Just relating a personal experience, I had read various bits on Aspect > Oriented Programming (or aspects in general) but they always seemed to > be vague descriptions - "they are cross cutting concerns". Err, ok, but > like what does that really mean??? I never "got it". So just in case > anyone else is in the same camp of not quite getting the point of > aspects, I thought I would share an example that suddenly made it make > sense to me. If nothing else, this post might give others the enjoyment > of saying "gee this guy is just slow to understand isn't he!" ;-) > > I came across a concrete example recently in the Alfresco content > management system. (Not really programming, but it was a concrete > example that made sense to me.) Expressing in programming terms, in > Alfresco you can define a class hierarchy for different document types > (e.g. generic base class that stores an array of bytes representing the > file contents; a subclass say for Office documents with metadata > properties common to Word, Excel, and PowerPoint; then a subclass per > exact file format with additional properties specified to each file type > and maybe saying how to index the file contents appropriately). > Inheritance makes complete sense here. Now for aspects. Within an > Alfresco repository you might want *some* instances of documents also to > be under version control, or record management control. This is not per > document type - it "cuts across" different document types. Similarly > some instances of files maybe under Record Management control (e.g. > "this file cannot be deleted for 5 years"). So in Alfresco you can add > an aspect (in this case "records management") on a per instance basis. > The aspect is not part of the class hierarchy - but it does give the > instance more properties. > > I am not saying this is exactly the same as AspectJ - I have never used > AspectJ. I just found it helped me understand terms like "cross cutting > concern" in a much more concrete way. I now at a conceptual level read > "aspect" sort of like "Java interface", but one that can be added to > object instances at run time irrespective of what class they belong to. > > Well, I hope the above helps at least one other person out there! It > was a penny dropping moment for myself. > > Alan > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
