我不正确地使用包裹吗?

时间:2014-10-28 09:01:18

标签: java android packages

我正在构建一个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

就个别类而言,上述两者兼而有之,但每个包都是明确定义的子系统。在哪种情况下,模特之类的东西会适合哪里?

3 个答案:

答案 0 :(得分:1)

一般来说,两种方式都是正确的。它完全取决于您使用哪种样式来存储包内的类。第一个结构,是非常简单易懂的技术方面,因为在月份之后,如果您将在代码中看到,那么您很容易理解您的所有适配器都在适配器包中等等。其次,它完全显示您的对话相关内容在对话包中,而朋友则在朋友包中。

但就我而言,我建议你先使用它。因为它非常易于理解且易于实现。

答案 1 :(得分:1)

使用第二种方法会更好,因为这会使您的代码更加模块化,您可以部分测试代码,您可以预先知道您可以暂停哪些功能以及什么功能稍后执行,但在第一个,它不错,但我没有看到使用它的任何好处。

考虑到你没有开发一些开源应用程序)


答案 2 :(得分:1)

第一个更优选,因为根据它定义的约定,第二个是类似组件在一个组下也是你在第一个语句中定义的好方法

FYI

http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html