GoF design patterns chapters 1 and 2