Android应用程序架构 – MVVM或MVC?

我有一个Android项目,我开始工作,我想要其结构尽可能强大。

我来自一个WPF MVVM背景,我一直在阅读一点关于Android应用程序架构,但我只是无法找到一个直接明确的答案,我应该使用哪个架构。

有些人建议使用MVVM – http://vladnevzorov.com/2011/04/30/android-application-architecture-part-ii-architectural-styles-and-patterns/

和其他人建议使用MVC,但没有指定如何确切地实施它。

因为我说我来自WPF-MVVM背景,因此我知道它很大程度上依赖于绑定,据我所知,在Android中默认不支持。

它似乎有一个第三方解决方案 – http://code.google.com/p/android-binding/
但我不知道我是否愿意依赖。如果它的开发将停止,它将不会被未来的API等支持。

基本上我正在寻找的是一个彻底的教程,将教我构建应用程序的结构的最佳实践。文件夹和类结构等我只是找不到任何彻底的教程,我希望谷歌将为其开发人员提供这样的教程。我只是不认为这种文档处理技术方面好 – http://developer.android.com/guide/topics/fundamentals.html

我希望我已经足够清楚了,我不要求太多,我只是想确定我的应用程序的结构,在我的代码将变成一个意大利面怪物之前。

谢谢!

首先,Android不强迫你使用任何架构。不仅如此,它也使它有点难以尝试跟随任何。这将要求你是一个聪明的开发人员,以避免创建意大利面条代码库:)

你可以尝试适合任何你知道和你喜欢的模式。我发现最好的方法将以某种方式进入你的勇气,因为你开发越来越多的应用程序(对不起,但一如既往,你必须犯许多错误,直到你开始做正确)。

关于你知道的模式,让我做错了:我会混合三种不同的模式,所以你得到的是什么在Android中的感觉。我相信Presenter / ModelView应该在Fragment或Activity中的某个地方。适配器有时可以做这项工作,因为他们处理列表中的输入。也许活动应该像控制器一样工作。模型应该是常规的java文件,而视图应该布局布局资源和一些自定义组件可能需要实现。

我可以给你一些提示。这是一个社区wiki答案,希望其他人可能包括其他建议。

文件组织

我认为主要有两种明智的可能性:

>按类型组织一切 – 为所有活动创建一个文件夹,为所有适配器创建另一个文件夹,为所有片段创建另一个文件夹等
>按域来组织一切(也许不是最好的词)。这意味着与“ViewPost”相关的所有内容都在同一个文件夹中 – 活动,片段,适配器等。与“ViewPost”相关的所有内容都将在另一个文件夹中。 “EditPost”等等。我想,活动将强制您创建的文件夹,然后会有一些更通用的基类例如。

就个人而言,我只是参与使用第一种方法的项目,但我真的想尝试后来,因为我相信它可以使事情更有条理。我没有看到有一个文件夹有30个不相关的文件,但这是我得到的第一种方法没有优势。

命名

>在创建布局和样式时,始终使用它们使用的活动(/ fragment)的前缀来命名(或标识它们)。

因此,在“ViewPost”的上下文中使用的所有字符串,样式和ids应该开始为“@ id / view_post_heading”(例如对于textview),“@ style / view_post_heading_style”,“@ string / view_post_greeting”。

这将优化自动完成,组织,避免名称碰撞等。

基类

我想你会想要使用基本类几乎所有你做:适配器,活动,片段,服务等。这些可能是有用的,至少为调试目的,所以你知道哪些事件发生在你的所有活动。

一般

>我从来没有使用匿名类 – 这些都是丑陋的,并会引起你的注意力,当你试图阅读的代码
>有时我喜欢使用内部类(相比创建一个专用类) – 如果一个类不会被使用在任何其他地方(和它的小)我认为这是非常方便。
>从一开始就考虑你的日志系统 – 你可以使用android的日志系统,但要充分利用它!

http://stackoverflow.com/questions/8510683/android-application-architecture-mvvm-or-mvc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Android应用程序架构 – MVVM或MVC?