Довольно рано в моем приложении, когда я был намного менее опытным, чем сейчас, я хотел бы оживить некоторые переходы между контроллерами представлений с помощью собственных пользовательских анимаций. Не имея понятия, с чего начать, я огляделся вокруг SO для шаблона, такого как MVC, к которому можно было получить доступ почти с любого контроллера в любое время, и, как оказалось, односторонний путь - это путь.Выбор синглтона или категории?
То, что я не понимал, состоит в том, что, похоже, существует сильная и хорошо защищенная ненависть к одноэлементному шаблону, и я сам начинаю понимать, почему, но это не относится к делу.
Итак, некоторое время спустя я решил перенести мою ту же реализацию в категорию в UINavigationController (в конце концов, он обрабатывает переходы!), Сохранил исходные классы для сравнения, и мне интересно, какой из методов будет работать лучше всего. Полностью протестировав обе версии, я могу без всяких сомнений сказать, что они равны во всех отношениях, включая скорость, точность, гладкость, частоту кадров, использование памяти и т. Д., Так, какой из них «лучше» в смысле общей ремонтопригодности?
EDIT: после прочтения хорошо написанных аргументов, которые вы все сделали, я решил использовать синглтон. @JustinXXVII сделал самый убедительный аргумент (IMHO), хотя я считаю каждый ответ здесь одинаково заслуживающим внимания. Спасибо всем за ваше мнение, я ответил на все вопросы в вопросе.
Не знаете, почему ответчики на этот вопрос, похоже, не понимают, что такое категория. Это часть языка Objective C: http://macdevelopertips.com/objective-c/objective-c-categories.html – johnbakers
@ThomasW, Категории - это способ расширить классы ObjC. Хотя в старые времена (ObjC1) они использовались для обработки тех вещей, которые мы используем на сегодняшний день, они являются отдельной (и очень полезной). Https://developer.apple.com/library/ios/#documentation/cocoa/ концепт/objectivec/главы/occategories.html –