逐个包VS的逐个功能库命名?

时间:2015-05-06 16:58:38

标签: java architecture packages

我知道这有几个相关的帖子,但我有一些具体的问题,我希望我可以得到帮助。对不起,如果他们非常基本..

这是一个示例问题 - 非常简化,但你得到的图片 - 我有几个对象,它们有一些共同的功能,例如:制药公司的部门 - 神经病学,肿瘤学,感染等。他们都需要解析患者文档文件,并将数据上传到数据库。当然,每个部门的数据性质略有不同。如果我使用逐个功能,我会有

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.

如果包是按功能的,那么这些常见的类/接口在哪里?

1 个答案:

答案 0 :(得分:0)

我建议保持简单。如果你不熟悉它,将它们放入com.company是一个合理的解决方案。

这里需要注意的是,每当你发现组织的共同性时,就要求纪律将这些内容移到单独的包中。

就您的示例而言,您已经开始建立这些连接 - 您的帖子本身已经过细分以建议这些额外的套餐:

com.company.dataaccess
com.company.error

AbstractDocument.java可能并不值得拥有自己的套餐 - 但是。如果你最终创建了更多相关的接口/类,那么将它们移到一个合适的包中,但不要担心它,直到它真正成为一个问题。

相关问题