Мне было интересно, в каких случаях действительно необходимо принять одноэлементный шаблон в objective-C (например, определить выделенный класс и создать один экземпляр), что использование класса как объекта не будет выполнено.
В частности, я думаю о следующем решении:
- Определить и использовать соответствующие методы класса вместо методов экземпляров для экземпляра singleton;
-  Используйте переменные static(глобальные глобальные расширения), вместо переменных экземпляра экземпляра singleton;
- Используйте объект класса при регистрации в качестве наблюдателя для уведомлений вместо экземпляра singleton. Хотя объект класса является объектом objective-C сам по себе (правильно?), Для этого требуется, чтобы обработчик уведомлений был методом класса; (возможно ли это?)
Например, вместо того, чтобы иметь объект Texture (модельный объект)  и a TextureManager singleton (диспетчер ресурсов), вы могли бы создать или создать текстуру как методы класса и статические переменные того же класса Texture (шаблон factory плюс некоторое управление ресурсами).
Любые мысли об этом дизайне?
  EDIT:
Теперь, когда я думаю об этом и все еще в приведенном выше примере Texture, даже если я удерживаю два класса отдельно (Texture и TextureManager), я должен выбрать между A. Имея диспетчерский синглтон и управляйте им с использованием методов экземпляра или B. Наличие менеджера неинтересным вспомогательным классом. Чтобы уточнить:
Texture* myTexture = [[TextureManager defaultManager] textureWithName:@"TextureName"]; 
// (singleton, client uses instance methods)
против
Texture* myTexture = [TextureManager textureWithName:@"TextureName"]; 
// (Class standing in for singleton, client uses class methods)
Последний выглядит более простым и менее громоздким/многословным, но мне интересно, какой дизайн является "более правильным". Конечно, первый позволяет более чем одному экземпляру TextureManager возникнуть необходимость (не в моем случае).
