Although I already know Java I must participate in a Sun Microsystems official Java Programming course in order to become a Sun Certified Java Trainer. The course I participated at was delivered by Nir Givol. You can find a copy of my diploma on line.
The Visitor Design Pattern
The visitor design pattern allows us to add operations to objects that already exist without modifying their classes and without extending them.