【问题标题】:Is it a good practice to encapsulate the database access封装数据库访问是一种好习惯吗
【发布时间】:2013-12-12 15:25:09
【问题描述】:

我正在开发一个应用程序。 我在某处读到不应直接访问数据库,但应该有一种层,并且应该通过它访问数据库。

我不知道确切的原因。

如果您能提供一些推理或链接,那就太好了。

【问题讨论】:

标签: database language-agnostic encapsulation


【解决方案1】:

是的,从其他部分 o 抽象/封装您的数据库访问逻辑确实是一个好习惯。数据访问层不应直接访问或暴露给所有人。这意味着当您设计应用程序时,您必须考虑“分层架构”这一重要因素,例如业务层、服务层、表示层等等。像服务层(如果它的 Web 应用程序)这样的工作流调用业务层,业务层调用数据访问层。所有这些层都应该非常抽象,或者只能由最直接的层(所谓的客户端)访问。

回答你的问题:假设你当前的数据访问实现是基于普通的 JDBC/ODBC 。当你的需求增长一段时间后;你打算用一些 ORM 框架来实现它。在这种情况下,在用不同 API 编写的不同数据访问逻辑之间切换/迁移真的很容易,而不会影响应用程序的其余部分,而且由于您的设计本质上是非常抽象的,因此其他层仍然不知道您的更改。

底线:始终反对抽象接口而不是实现。

希望这对您有所帮助并感谢 cmets

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多