nekocode / create-android-kotlin-app

Create kotlin android project with one line of command.
Apache License 2.0
1.6k stars 209 forks source link

关于MVP #19

Closed alittlecup closed 7 years ago

alittlecup commented 7 years ago

冒昧问一句看了项目中的MVP的实现方式是采用Activity作为View,Fragment作为Presenter,对此有几点疑问,首先就是关于性能上的,对个presenter的话就会存在多个Fragment,是否会对app运行时的性能有所影响,第二个是考虑到浮复杂页面的情况,Activity本身会持有Fragemnt作为视图,那是否仍要采用这种方式在Fragment中再构建一个Fragment作为Presenter?不知道有没有相关的介绍文章讲解关于使用Fragment作为presenter的,之前采用的都是普通的方式,使用lifecycle绑定的生命周期,如果在大型项目中是否会有额外的影响?

nekocode commented 7 years ago

除非是对内存极为敏感的 App,否则不用担心 Fragment 带来的性能影响(本身 Google 也推荐使用 Headless Fragment 来做一些背景任务)。

复杂页面的话我个人倾向于由 Activity 负责中转,例如你可以把视图 Fragment 比喻成一个 View,然后 View 给 Activity 提供事件反馈的接口(例如 setOnClickListener()),最终 Activity 将 UI 事件反馈给 Presenter。当然,我以前是按照和你说法一致的做法去做,但是后面我发现其实没必要,那样做反而复杂了。

alittlecup commented 7 years ago

非常感谢回答,仔细读了几遍,慢慢琢磨