design patterns study map