结合课程的好习惯是什么

时间:2011-01-10 21:13:22

标签: java android

不要将我的所有课程都保存在单个src中 - > 'package_name'文件夹我正在创建不同的子包,以便按照组,例如 - 实用程序,模型,活动本身等将我的类分开。我不确定这是否是一个好的做法,人们在实际项目中也这样做

3 个答案:

答案 0 :(得分:5)

是的,将您的班级分成包裹绝对是标准做法。建立一个如何分离它们的约定是很好的,以便以后更容易找到它们。两种常见方法:

  1. 根据具体内容将内容放入包中:模型,服务,数据访问(DAO)等。
  2. 根据它们支持的功能将内容放入包中(例如,java.io,java.security等。
  3. 我已经使用了两者并继续回到前者,因为它不那么主观(总是清楚一个类是模型还是服务,但不总是清楚它是否支持一个函数或另一个函数)。

答案 1 :(得分:1)

按照您描述的方式按类别进行操作是我在实际项目中看到的一种方式。我不像以前那样关心它,因为当我需要进行更改或添加功能时,我倾向于需要在IDE中扩展几个包。我更喜欢(当我有选择时)按功能分组。这样我知道在哪里寻找支持该功能的所有类。

答案 2 :(得分:1)

我更喜欢的约定是先按模块分组,然后按功能分组。例如,您可以使用以下结构:

com.example.modulea - modulea specific code that doesn't have any real need of a different package
com.example.modulea.dao - data access for module a
com.example.modulea.print - printing for module a

...

com.example.moduleb - moduleb specific code that doesn't have any real need of a different package
com.example.moduleb.dao - data access for module b
com.example.moduleb.print - printing for module b

以这种方式,代码更清晰。

在另一种通过纯功能进行分组的方式中,包大小往往非常大。如果您的项目包含15个模块,并且每个模块每个包有一个或多个元素,那么每个包至少有15个类。我更喜欢明确分开的包而不是简单分组的包,因为“哦,这里有一些用于每个模块的打印实用程序,但只有一个模块实际上使用了这个包中的一个” - 它只是让人感到困惑。