关于类分离与访问修饰符的最佳实践

时间:2013-10-20 06:51:41

标签: java design-principles

由于我确定标题不太明确,我会详细说明我的问题。

我目前正处于一个涉及字母识别图像处理的软件开发项目中。一种更原始​​的特征提取方法涉及存储预编译的数据文件并对其进行检查。现在,为了实现这一目标,在流程的某个阶段,必须从已知的图像源编译数据,并且我们已经完成了所有这些,但是数据编译的功能应该在哪里发生? / p>

我有一个名为featureExtraction的包,其中包含一个名为VectorAnalysis的类,它使用预编译的数据。目前VectorAnalysis类包含在请求时生成数据的功能,但我想将所有功能提取到一个单独的包中(因为还有一些其他提取方法也需要预编译数据,因此有他们自己的数据构建方法,拥有数据生成包似乎是合乎逻辑的。)

问题在于数据生成功能通常依赖于各自提取类中的privateprotected功能。

所以最终我的问题是:

更好的做法是在提取类中生成数据,还是应该打开对提取类的内部工作的访问权限,以便生成方法可以从外部包访问它们?

或者是否有一些我忽略的完全不同的做法?

1 个答案:

答案 0 :(得分:0)

不完全理解你的问题,但我会尽力回答。更好的做法是将所有功能分成许多类:每个类的功能都很小。所有类都应尽可能重用,并具有适当的思想公共接口(类'公共成员,而不是Java接口,我的意思)。因此,您可以在任何包中使用低级和高级函数。