在我的应用程序中,我有一个单一的"活动"架构,对于每个片段,我都定义了一个";查看";班
这个";查看";类包含View状态和View操作,它们引用视图的数据和操作。
例如,我有";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()
}
}
";MainState";以及";Actions";然后导入并在";MainFragment.kt";并且在其";ViewModel";班
正如你所看到的;MainView;被定义为对象,因为我不需要实例化它。我使用它的方式只是使用它包含的数据(状态和操作(。这在设计上也是一种更安全的方法,因为我只需要有一个";查看";类随时存在。
可能的问题:但是,由于有许多碎片,因此有许多与它们对应的View类,因此应用程序显然会有许多对象。当然,这些对象是在内存中静态分配的,这可能会增加内存使用量。
问题:在如何定义我的";查看";课程?例如,如果我定义";MainView.kt";作为一个类(例如类MainView(({…}(而不是一个对象,在内存分配和性能方面会更好吗?
不用担心。这些object
类的属性并不是拥有兆字节的状态。在上面的例子中,它根本没有状态。在您的项目中,这些object
中的每一个都可能添加不超过128字节的开销(一个字用于实例,一个字用作引用(。
假设你的项目中有100个。您可以通过将对象更改为类来减少这种开销(从而使它们宣传一些您不应该使用它们做的事情,这样您的代码就不那么清晰了(。您所节省的RAM将少于一行文本所使用的RAM。