我知道这有几个相关的帖子,但我有一些具体的问题,我希望我可以得到帮助。对不起,如果他们非常基本..
这是一个示例问题 - 非常简化,但你得到的图片 - 我有几个对象,它们有一些共同的功能,例如:制药公司的部门 - 神经病学,肿瘤学,感染等。他们都需要解析患者文档文件,并将数据上传到数据库。当然,每个部门的数据性质略有不同。如果我使用逐个功能,我会有
com.company.neurology
Neurology.java
NeurologyDocument.java
NeurologyDAO.java
com.company.infection
Infection.java
InfectionDocument.java
InfectionDAO.java
等。 问题是我需要一个Document类需要扩展的抽象类,例如
AbstractDocument.java
public class AbstractDocument
{
public void validateDocument(){...}
public void readDocumentHeader(){...}
public void readDocumentFooter(){...}
...
}
某些数据访问文件,例如
DBConnection.java
public class DBConnection
{
public void makeConnectionToDB() {... }
public void createCache() {... }
public void closeConnectionToDB() {... }
}
一些错误类
ParseError.java, PatientNotFoundException etc.
如果包是按功能的,那么这些常见的类/接口在哪里?
答案 0 :(得分:0)
我建议保持简单。如果你不熟悉它,将它们放入com.company
是一个合理的解决方案。
这里需要注意的是,每当你发现组织的共同性时,就要求纪律将这些内容移到单独的包中。
就您的示例而言,您已经开始建立这些连接 - 您的帖子本身已经过细分以建议这些额外的套餐:
com.company.dataaccess
com.company.error
AbstractDocument.java
可能并不值得拥有自己的套餐 - 但是。如果你最终创建了更多相关的接口/类,那么将它们移到一个合适的包中,但不要担心它,直到它真正成为一个问题。