Android 應(yīng)用程序在架構(gòu)上大致是Java中的Model-View-Controller結(jié)構(gòu)。 在Android 中 Fragment和Activity通常上是控制器類(http://www.informit.com/articles/article.aspx?p=2126865). 換句話說,他們是用戶接口的部分,同樣也是Views視圖的部分。
正是因?yàn)槿绱耍藕茈y嚴(yán)格的將fragments (或者 activities) 嚴(yán)格的劃分成 控制器controlloers還是視圖 views。 最還是將它們放在自己?jiǎn)为?dú)的?fragments
?包中。只要你遵循之前提到的建議,Activities 則可以放在頂級(jí)目錄下。 若果你規(guī)劃有2到3個(gè)以上的activity,那么還是同樣新建一個(gè)activities
包吧。
然而,這種架構(gòu)可以看做是另一種形式的MVC, 包含要被解析API響應(yīng)的JSON數(shù)據(jù),來填充的POJO的models
包中。 和一個(gè)views
包來包含你的自定義視圖、通知、導(dǎo)航視圖,widgets等等。 適配器Adapter是在數(shù)據(jù)和視圖之間。然而他們通常需要通過getView()
方法來導(dǎo)出一些視圖, 所以你可以將adapters
包放在views
包里面。
一些控制器角色的類是應(yīng)用程序級(jí)別的,同時(shí)是接近系統(tǒng)的。 這些類放在managers
包下面。 一些繁雜的數(shù)據(jù)處理類,比如說"DateUtils",放在utils
包下面。 與后端交互負(fù)責(zé)網(wǎng)絡(luò)處理類,放在network
包下面。
總而言之,以最接近用戶而不是最接近后端去安排他們。
com.futurice.project
├─ network
├─ models
├─ managers
├─ utils
├─ fragments
└─ views
├─ adapters
├─ actionbar
├─ widgets
└─ notifications
更多建議: