[design-patterns] On design patterns: When should I use the singleton?