在Android中,一个好的打包策略是什么
我已经开发了几个Android应用程序,但我仍然不确定如何将这些类构造成不同的包 例如,假设我们正在构建一个书店应用程序,它包含在 BookListActivity和BookDownloadActivity BookListActivity使用ListView,它需要一个列表适配器。BookDownloadActivity需要BookDownloadAsyncTask 我见过有人这样构造代码:在Android中,一个好的打包策略是什么,android,project,structure,packages,code-organization,Android,Project,Structure,Packages,Code Organization,我已经开发了几个Android应用程序,但我仍然不确定如何将这些类构造成不同的包 例如,假设我们正在构建一个书店应用程序,它包含在 BookListActivity和BookDownloadActivity BookListActivity使用ListView,它需要一个列表适配器。BookDownloadActivity需要BookDownloadAsyncTask 我见过有人这样构造代码: src/com/company/bookapp\ + activi
src/com/company/bookapp\
+ activity\
| +-BookListActivity.java
| +-BookDownloadActivity.java
|
+ adapter\
| +-BookListAdapter.java
|
+ asynctask\
+-BookDownloadAsyncTask.java
这种结构是有意义的,因为我们有一个用于所有活动的包。然而,我认为java包就像文件夹、抽屉一样,放东西的地方。
如果我们这样做,BookListAdapter类及其某些方法需要是公共的。我希望使用java包,而不是像文件系统那样在不同的文件夹中组织文件,而是像某种名称空间一样,充分利用java可见性修饰符的好处,包括包可见性
因此,由于BookListAdaper仅在BookListActivity中使用,我希望它具有包访问级别。BookDownloadAsyncTask也是如此,它只在BookDownloadActivity中使用
当然,在本例中,适配器和AsyncTask非常小,因此我们可以将它们作为嵌套类写入各自的活动中。但是想象一下,活动使用的类更大或不止一个,而且是特定于该活动的
从这个角度来看,我很想做:
src/com/company/bookapp\
+ list\
| +-BookListActivity.java
| +-BookListAdapter.java
|
+ download\
+-BookDownloadActivity.java
+-BookDownloadAsyncTask.java
使用这种方法,只有活动对应用程序的其余部分可见,它们使用的类具有包可见性,而应用程序的其余部分不知道它们,我认为这是更封装和更好的方法
然而,这是否意味着我们应该为每项活动制定不同的方案?如果两个活动使用同一个适配器怎么办
我很想知道你们在这方面做了什么,以及其他相关的问题,例如,在哪里放置扩展视图。您可以从其他包中导入类,因此您可以根据自己的喜好将其拆分。 我总是把我的放在MVC包里
但是,如果您创建了一个protectet类或方法,它只能在相同的包中使用。投票关闭,对不起,因为我认为这主要是基于观点的,可能会引发评论风暴。就个人而言,我使用的唯一标准是可见性,因此是封装。我将所有其他标准视为个人偏好。模型、视图、控件