Overview of design patterns