【发布时间】:2022-01-28 14:31:17
【问题描述】:
在我的应用中,我有一个单一的 Activity 架构,并且我为每个 Fragment 定义了一个“视图”类。
这个“视图”类包含视图状态和视图动作,它们引用视图的数据和动作。
例如,我有“MainFragment.kt”和一个相关的“MainView.kt”文件,如下所示:
object MainView {
data class MainState(...) {...}
sealed class Actions {
sealed class Navigate : Actions() {
object Back : Navigate()
data class NextScreen(...) : Navigate()
}
object DoSomething : Actions()
}
}
然后在“MainFragment.kt”及其“ViewModel”类中导入和使用“MainState”和“Actions”。
如您所见,“MainView”被定义为一个对象,因为我不需要实例化它。我使用它的方式只是使用它包含的数据(状态和动作)。这也是一种更安全的设计方法,因为我只需要在任何时候都存在“视图”类的一个实例。
可能的问题: 但是,由于有很多 Fragment,因此有很多 View 类对应于它们,那么应用程序显然会有很多对象。当然,这些对象是静态分配在内存中的,这可能会导致内存使用量增加。
问题: 有没有更好的方法来定义我的“视图”类?例如,如果我将“MainView.kt”定义为一个类(例如 class MainView(){...})而不是一个对象,在内存分配和性能方面会更好吗?
【问题讨论】:
标签: java android kotlin garbage-collection singleton