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。但在大多数情况下,这两种方法可能同样有效,因为从本质上讲,服务无论如何都会在整个应用程序生命周期中保存在内存中。
我正在使用 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。但在大多数情况下,这两种方法可能同样有效,因为从本质上讲,服务无论如何都会在整个应用程序生命周期中保存在内存中。