Head first design patterns. - Freeman, Eric,; Freeman, Elizabeth, (O'Reilly,, 2004)