Get.put(SomeClass(), permanent: true) 和 Get.put(SomeGetXService()) 之间的内存管理差异是什么

What are the memory management differences between Get.put(SomeClass(), permanent: true) and Get.put(SomeGetXService())

我正在使用 Getx 及其依赖注入机制。

有时我想得太多了 - 我是否应该使用

注入一个应该保留在内存中的 class(作为 Singelton)

Get.put(SomeClass(), permanent: true)

或使用

Get.put(SomeGetXService())

通过阅读文档,这两种方式似乎都将 class 作为 Singelton 放入内存中,并且只能明确删除(即不能使用 Get.smartManagement)。

至于我,我不想用 GetxService 扩展 class,因为第一个选项更容易实现 - 但我觉得我可能遗漏了一些东西。在整个应用程序生命周期中,必须将 class 作为 Singelton 保存在内存中。 感谢您的帮助

第一个选项在整个应用程序的生命周期中始终将 class 保留在内存中,而第二个选项将服务绑定到堆栈导航生命周期。根据 GetX dpcumentation,只有调用 Get.reset() 才能删除 GetXService。但在大多数情况下,这两种方法可能同样有效,因为从本质上讲,服务无论如何都会在整个应用程序生命周期中保存在内存中。