Hola, mirad uso un singleton para crear un objeto desde una consulta, con el fin de que solo se ejecute una vez esa consulta y se genere el objeto con unos datos concretos.
Una vez que se llama lo creará tan solo si antes no ha sido instanciado, hasta ahí todo bien, el problema es que luego al ser pasado por referencia este objeto desde fuera pueden cambiar su valor, no pasaría nada, pero a mi me interesa que aunque cambien su valor siempre que se instancie este objeto venga con los datos del registro, sin tener las modificaciones posteriores que otro programador hubiese realizado sobre él una vez creado.
Como lo soluciono? de momento el parche que he puesto es que cada vez que se instancie hago un clone, de ese modo siempre harán cambios sobre esa copia y no sobre el propio objeto creado al principio.
Como lo véis hacerlo así? tenéis alguna idea de como devolver el mismo objeto con sus datos cada vez que sel llame?