Applying Generics and Functors for Object Realization
I just looked at David Hall's abstract for JavaOne session on "Applying Generics and Functors to Desktop JavaTM Programming" (TS-3802) at http://www.javaone04.com/catalog/catalog/sessionDetail.jsp?hd=true&SESSI..., and found the following:
"In desktop programming, there are often large numbers of small, frequently anonymous classes that implement trivially simple interfaces. By replacing these classes with functor-based aggregates, hundreds of classes can be eliminated from the runtime."
This pretty much describes the situation with Assimilator and Applier interfaces in OpenMarkup, and how the JDNC tag library implements these interfaces with hundreds of anonymous classes.
At this point I haven't seen David's code, the JavaDocs, or the J1 session slides. So, I don't know if or how his approach will improve things, but the possibility is very intriguing.