Bueno te voy a repetir como ya te han dicho el singleton no gusta a muchos (excepto por
master que lo ama XD), hablando en serio fijate lo que te hablaba master sobre el identity map,
Cita:
Iniciado por martin fowler Ensures that each object gets loaded only once by keeping every loaded object in a map. Looks up objects using the map when referring to them.
entonces lo más seguro es que este pattern te sirva,
acá
tienes un ejemplo, saludos