[design-patterns] What is so bad about singletons?