GoF design-pattern using recent java