Java接口目录结构?

ken*_*ken 19 java directory-structure interface

Java中的接口应该驻留在自己的目录中吗?或者接口及其实现是否应该放在同一目录(包)中?谢谢.

And*_*ite 14

我见过的一种模式是将接口放在基目录中,然后将实现放在子目录中.

例如,接口可能会在这里:

com.myproject.data.dao.CustomerDao (some people do ICustomerDao for interfaces, but some don't like that.)
com.myproject.data.dao.ProductDao
Run Code Online (Sandbox Code Playgroud)

实现可能会在这里:

com.myproject.data.dao.hibernate.HibernateCustomerDao
com.myproject.data.dao.hibernate.HibernateProductDao
com.myproject.data.dao.someotherorm.SomeOtherOrmCustomerDao
etc.
Run Code Online (Sandbox Code Playgroud)

这可能在某些情况下有效,而在其他情况下可能不适用,但只需考虑一些事情.


Aar*_*ron 11

接口并不特别需要自己的目录.它们应放置在合理的位置,就像将类放在合理的位置一样.在许多情况下,将它们放在同一个地方可能是有意义的.


Nil*_*idt 6

由于已经有一些好处,我只想补充一点:

在一些项目中,我们甚至走得太远,以至于我们将所有接口放在一个子项目(maven模块)中,并将实现放到另一个子项目中.通过这种方式,可以从实现中完全分离接口,并在项目的早期阶段完成接口项目,并将其交付给那些再次使用这些接口的团队.在每个项目中,我们使用相同的包.

一般来说,我会说,你应该分离接口和它们的实现,这种方式并不重要,只要你与它保持一致.