Componentization: the Visitor example

Patterns provide a vocabulary and catalog for common design solutions but are not reusable software. Through advanced object-oriented language mechanisms it is possible to simplify the application developer's job by turning certain patterns into fully reusable solutions