我正在构建一个Android聊天应用。 我一直在使用包来存储类似的类,但我不确定这是不是现在。 我一直这样做:
com.myApp.adapters //- All my ListAdapters (FriendsListAdapter, MessagesListAdapter)
com.myApp.fragments //- All my Fragments (FriendsFragment, ConversationFragment)
com.myApp.database //- All my Database classes (DatabaseHelper, MessagesDataSource, etc...)
com.myApp.models //- All my Models (Friend, Message, Conversation)
com.myApp.communications //- All my Comms classes (GCM classes, Facebook Classes, etc...)
这是否合理?
或者应该更像是:
com.myApp.Conversations //- Everything for Conversations (MessageListAdapter, ConversationFragment, MessagesDatasource)
com.myApp.Friends //- Everything for Friends (FriendsListAdapter, FriendsFragment, FriendsDataSource)
// ......等等。
我怀疑它应该是后者,基于应用程序本身的功能或特性的包,而不是根据它们彼此共有的内容对类进行分组,如果这有意义的话?
编辑: 实际上,以上都是错误的,我应该从一开始就定义子系统,所以更像这样:
com.myApp.UserInterface
com.myApp.Database
com.myApp.Communications
就个别类而言,上述两者兼而有之,但每个包都是明确定义的子系统。在哪种情况下,模特之类的东西会适合哪里?
答案 0 :(得分:1)
一般来说,两种方式都是正确的。它完全取决于您使用哪种样式来存储包内的类。第一个结构,是非常简单易懂的技术方面,因为在月份之后,如果您将在代码中看到,那么您很容易理解您的所有适配器都在适配器包中等等。其次,它完全显示您的对话相关内容在对话包中,而朋友则在朋友包中。
但就我而言,我建议你先使用它。因为它非常易于理解且易于实现。
答案 1 :(得分:1)
使用第二种方法会更好,因为这会使您的代码更加模块化,您可以部分测试代码,您可以预先知道您可以暂停哪些功能以及什么功能稍后执行,但在第一个,它不错,但我没有看到使用它的任何好处。
(考虑到你没有开发一些开源应用程序)
答案 2 :(得分:1)
第一个更优选,因为根据它定义的约定,第二个是类似组件在一个组下也是你在第一个语句中定义的好方法
FYI
http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html