4

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

  • 主包
  • mainpackage.model -> 每个表的模型,以使用从数据库中获取的数据创建对象
  • mainpackage.persistence -> ConnectionManager
  • mainpackage.persistence.dao -> 接口和实现

关于接口的命名,我认为使用 ClassDAO 和 DefaultClassDAO 之类的东西来实现是个好主意,只要我不知道如何命名它。你怎么看?有什么约定吗?

4

1 回答 1

2

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

  • 主包
  • mainpackage.model -> 包含“存储库”作为接口,如 UserRepository、ProfileRepository 描述管理存储中实体的操作(存储、查找等)。这样你就不会泄露你的存储是一个数据库。
  • mainpackage.model.db(或 sql 或其他)-> 包含 SqlUserRepository、SqlProfileRepository 实现 mainpackage.model 中的接口并命中数据库。

您甚至可以将 DB 类放在不同的子项目中。我认为重要的是不要将数据库放在设计的中心,而只是将其视为实现细节。

于 2013-04-08T16:15:21.797 回答