2013-04-08 225 views
4

我正在开发一个需要与数据库建立连接的应用程序。为了通过这个连接来操作,我使用了DAO模式。我的问题与代码的组织以及接口和实现的名称有关。当前包的结构是下一个:DAO命名约定

  • mainpackage
  • mainpackage.model - >每个表以产生具有从DB提取的数据对象
  • mainpackage.persistence的模型 - >的ConnectionManager
  • mainpackage.persistence.dao - >接口和实现

关于命名Ø f接口我认为使用ClassDAO和DefaultClassDAO这样的实现是一个好主意,只要我不知道如何命名它。你怎么看?这是否有任何约定?

回答

2

我会使用“域驱动设计”中描述的约定。

  • mainpackage
  • mainpackage.model - >包含 '仓库' 的界面,比如UserRepository,ProfileRepository描述的操作来管理您的实体存储(存储,查找,等等)。这样你就不会泄漏你的存储是一个数据库。
  • mainpackage.model.db(或sql或其他) - >包含SqlUserRepository,SqlProfileRepository实现mainpackage.model中的接口并敲击数据库。

你甚至可以把DB类放在不同的子项目中。我认为不要将数据库置于设计的中心并将其视为实现细节非常重要。