Ни один класс не должен сохранять указатель на одноэлементный класс. Сам класс Singleton хранит указатель на свой экземпляр. По сути, когда пользователь хочет использовать синглтон, он запрашивает его через метод класса (по соглашению, часто начинающемуся с shared
). Этот метод проверяет, был ли инициализирован синглтон. Если нет, он выполнит инициализацию. Если в памяти уже есть существующий экземпляр, он просто вернет его. Обычно одноэлементный объект будет жить в памяти на протяжении всего жизненного цикла приложения.
Дело в том, что, если вы установите значение для одного из свойств, то да, оно должно быть доступно в другой части программы. И нет, делегату приложения не нужно хранить указатель на синглтон.