在这些情况下,可能更倾向于采用更直接的方法。例如,我们可以转向使用 Active Record。此外,尽管 DAO 提供了一种抽象,但有时会导致与特定持久性框架的紧密耦合。例如,在使用 JPA 的 Java 应用程序中,它依赖于 JPA 实体和底层 ORM。
如果您更换工具或迁移到另一个持久性框架,灵活性就会受到限制,这可能会带来问题。鉴于这些弱点,更现代的设计模型通常被认为是 CAD 的演变。
这就是存储库模式的情况,它允许更好地与面向领域的架构(DDD 或领域驱动设计)集成。它提供了更丰富的接口,并封装了复杂的业务规则。
在某些环境中,Active Record模式是首选。然后,业务对象承担起保存其数据的责任,这有时会使得 DAO 变得多余。尽管 DAO 非常强大且受欢迎,但必须根据项目的复杂性和技术环境谨慎应用。
数据访问对象的趋势和未来
随着新架构的出现和技术的进步,DAO 模型也在不断发展和适应。微服务架构的出现深刻改变了数据管理方式。每个微服务通常都有自己的数据库,这意味着 DAO 需要管理多个连接并集成分布式事务。
这使得访问管理变得复杂,但也加强了 DAO 提供的抽象的需要。它促进不同数据库之间的通信并保持一致的结构。
无服务器架构也越来越受欢迎,而且由于 DAO 的运行时间很短,因此必须更加轻量、响应更快。同样,对实时数据处理系统(如流式传输或事件驱动解决方案)的需求不断增长,要求 DAO 适应并改变其实施方式。
在这些环境中,数据不再只是静态地提取,而是必须实时处理。例如,Apache Kakfa或Redis等数据库需要采用不同的方法来管理对连续数据流的访问。
了解有关 DAO 的更多信息
人工智能和自动化的进步也影响着智能 CAD 的发展。利用人工智能,一些 DAO 能够根据使用模式和系统负载自动优化数据库查询。
在机器学习环境中,DAO 还需要处理大量复杂数据来为算法提供信息并保持高效。随着Oracle 自治数据库等自治数据库的发展,我们还可以期待 DAO 能够自动化其某些功能。
跨多个数据库的查询优化、事务管理和负载平衡大部分可以委托给智能系统。另一个趋势是像 GraphQL 这样的API 解决方案,越来越多的开发人员采用它们。它们为数据查询方式提供了更大的灵活性。
为了与这些现代接口保持一致,DAO 必须提供更多动态访问点,并允许客户端准确指定所需的数据,而不是遵循严格的查询模式。
通过确保业务逻辑和数据访问之间的完全分离,DAO在可维护性、可移植性和可测试性方面具有许多优势。这就是为什么它仍然是各种软件环境(如 Python、Java 或 .NET)中数据管理的基本设计模式!
尽管最近出现了微服务架构、实时数据库和无服务器解决方案等技术发展,但该模型仍在不断适应并保持其相关性。
为了掌握数据访问对象,您可以选择DataScientest。我们的培训课程将让您发现在数据科学领域工作所需的所有概念、工具和技术。
具体来说,我们提供数据科学家、数据分析师和数据工程师课程。您还将学习如 巴林电报数据 何处理数据库、DataViz、Python 语言、数据分析技术甚至商业智能。
课程结束时,您将获得国家认可的文凭、继续教育证书以及由我们的云提供商合作伙伴(例如AWS或Microsoft Azure)颁发的专业认证。我们的所有培训课程均以BootCamp 、连续或勤工俭学的形式进行,并且我们的组织有资格通过 CPF或 France Travail 获得资助。发现 DataScientest!
注册 DataScientest 培训
你对 DAO 了如指掌。有关同一主题的更多信息,请查看我们关于数据库的完整文件和关于数据架构的文件!
Facebook
叽叽喳喳
LinkedIn
数据科学家新闻
订阅我们的时事通讯,即可直接在您的收件箱中收到我们的指南、教程和最新数据新闻。