Тайфун - активация дополнительных коллаборирующих сборок

Можно ли активировать дополнительные сборки на лету?

Например, в Info.plist у меня две сборки: UIAssembly и ServicesComponents.

Помимо этого, у меня есть несколько раскадровок, каждая со своей сборкой. Я не хочу загружать их все при запуске, потому что большинство объектов не будут использоваться.

Итак, после метода applicationDidFinishLaunching в дело вступает startUpRouter — он должен создать TyphoonStoryboard с TyphoonComponentFactory, включающей как исходные сборки, так и новую UserStoryAssembly.


person Jasper Blues    schedule 13.05.2015    source источник


Ответы (1)


Безусловно, можно создавать дополнительные сборки помимо той, которая привязана к вашему приложению, используя интеграцию plist., однако в этом нет необходимости.

Активация сборок не создает экземпляры новых объектов. Что происходит, так это то, что с помощью сборок мы создаем реестр рецептов для создания экземпляров новых объектов. . .

(Typhoon использует инструментарий времени выполнения для назначения уникальных ключей каждому определению на основе имени метода определения. Это позволяет выполнять автодополнение кода, рефакторинг и т. д. без создания каких-либо специальных инструментов).

. . . эта информация занимает мало памяти и хранится в классе TyphoonComponentFactory. Что происходит, так это то, что после активации TyphoonAssembly будет использовать пересылку сообщений Objective-C для отправки сообщений на фабрику, которая только затем соберет экземпляр в соответствии с определенными правила области действия. Областью по умолчанию является ObjectGraph, который позволяет определить сеть отношений для варианта использования, а затем отбросить ее, когда это будет сделано. (Это уникальная функция для применения внедрения зависимостей к программному обеспечению для мобильных и настольных компьютеров). Сохраняются только одноэлементные объекты.

person Jasper Blues    schedule 13.05.2015
comment
Спасибо за Ваш ответ! Я беспокоился о хранении явных объектов в памяти, в то время как приложению они не нужны. - person etolstoy; 13.05.2015