[英]MVP Implementation in Android
MVP中Application的目录结构是什么?
活动应该是Presenter还是View?
如果您正在寻找实现MVP的一个很好的例子,那么有一个Android本身为MVP开发的GitHub Repo 。 您应该研究的。
哪里
尽管MVP架构有很多实现,但是它们都有一个基本概念(或者至少应该如此),这将业务逻辑与您的视图(活动,片段,对话框)分开。 这是为什么? 好吧,主要有两个原因:
关于您的问题:
MVP中Application的目录结构是什么?
除应识别您的MVP组件外,没有其他规则。 在这里,您有一篇文章是从包结构开始的,但后来我发现其他更方便的了。
活动应该是Presenter还是View?
您的活动(或片段或负责显示视图组件的任何组件)应该是实现您的视图的活动。
我的建议是,您应该检查多个示例,并查看每个示例的优缺点,并尝试从您会更喜欢的示例中定义自己的体系结构。
您可以将“ Activity
或“ Fragment
用于“ 视图”层。 这是因为在android中显示UI元素需要Context
。
对于Presenter层,必须确保不要通过构造函数或setter将Context
传递给Presenter 。 如果您在Presenter中需要Context
来执行除显示UI之外的任务,例如写入SharedPreferences
,则可以从View (为Activity
或Fragment
)中获取它。 这样,如果View被破坏或变为null
,则Presenter中将没有独立的null
Context
导致泄漏问题。
如果您想了解更多有关MVP结构的信息,我已经为Android编写了一个非常方便的MVP库 ,并在此处的示例应用程序中说明了其用法。
MVP android示例示例应用程序 MVP Android Example用来解释如何在我们的Android应用程序中使用此模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.