A common design pattern is to encapsulate application preferences in a singleton class. The class handles persistence, and any other class which wants to access the preferences can just declare the singleton and access away. This makes me uneasy. It’s a bit too much like we’ve just thought of a polite new euphemism for global variables. So, my question: Has anyone encountered a real-world scenario where it was necessary or desirable to have multiple application-preference-encapsulating objects instantiated at the same time?