Java 包结构
最后更新于:2022-04-01 01:11:28
Android 应用程序在架构上大致是Java中的[Model-View-Controller](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)结构。 在Android 中 Fragment和Activity通常上是控制器类([http://www.informit.com/articles/article.aspx?p=2126865](http://www.informit.com/articles/article.aspx?p=2126865)). 换句话说,他们是用户接口的部分,同样也是Views视图的部分。
正是因为如此,才很难严格的将fragments (或者 activities) 严格的划分成 控制器controlloers还是视图 views。 最还是将它们放在自己单独的 `fragments` 包中。只要你遵循之前提到的建议,Activities 则可以放在顶级目录下。 若果你规划有2到3个以上的activity,那么还是同样新建一个`activities`包吧。
然而,这种架构可以看做是另一种形式的MVC, 包含要被解析API响应的JSON数据,来填充的POJO的`models`包中。 和一个`views`包来包含你的自定义视图、通知、导航视图,widgets等等。 适配器Adapter是在数据和视图之间。然而他们通常需要通过`getView()`方法来导出一些视图, 所以你可以将`adapters`包放在`views`包里面。
一些控制器角色的类是应用程序级别的,同时是接近系统的。 这些类放在`managers`包下面。 一些繁杂的数据处理类,比如说"DateUtils",放在`utils`包下面。 与后端交互负责网络处理类,放在`network`包下面。
总而言之,以最接近用户而不是最接近后端去安排他们。
~~~
com.futurice.project
├─ network
├─ models
├─ managers
├─ utils
├─ fragments
└─ views
├─ adapters
├─ actionbar
├─ widgets
└─ notifications
~~~