课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
领域驱动设计是目前大多数软件开发程序员都在学习和使用的一种软件开发设计模式,而本文我们就通过案例分析来简单了解一下,领域驱动设计概念与组成模块。
1、DDD简介
领域驱动设计(DDD)是一种通过将实现连接到演进的模型来实现复杂需求的软件开发方法
相对于简单的CRUD应用,DDD更适合于复杂的领域和大规模的应用。它关注核心域逻辑,而不是基础结构细节。
它有助于构建灵活、模块化和可维护的代码库。
DDD的实现高度依赖于面向对象编程(ObjectOrientedProgramming,OOP)和SOLID原则。实际上,它实现并扩展了这些原则。因此,在真正实现DDD时,对OOP和SOLID的良好理解会对您有很大帮助
2、DDD分层和整洁架构
基于领域驱动的解决方案有四个基本层
业务逻辑分为两个层,领域层和应用层,而它们包含不同种类的业务逻辑
领域层:实现领域/系统的核心、用例独立的业务逻辑
应用层:基于领域实现应用的用例。用例可以被认为是用户界面(UI)上的用户交互。
表示层:包含应用程序的UI元素(页面、组件)
基础设施层:通过实现对三方库和系统的抽象和集成来支持其他层
3、核心构建块
DDD主要关注领域和应用层,而忽略了表示和基础结构。它们被视为细节,业务层不应该依赖于它们
这并不意味着表示层和基础结构层不重要。它们非常重要。UI框架和数据库提供程序有它们自己的规则和佳实践,您需要了解并应用它们。
4、领域层构建块
实体:实体是一个具有自己属性(状态、数据)和方法的对象,这些属性实现了在这些属性上执行的业务逻辑。实体由其标识符(Id)表示。两个id不同的实体对象视为不同的实体
值对象:值对象是另一种类型的域对象,通过其属性而不是的Id来标识。这意味着具有相同属性的两个值对象被认为是同一个对象。值对象通常被实现为不可变的,并且通常比实体要简单得多。
聚合和聚合根:聚合是由聚合根对象绑定在一起的对象集群(实体和值对象)。聚合根是具有一些附加职责的实体的特定类型
存储库(接口):存储库是一个类似集合的接口,域层和应用层使用它来访问数据持久性系统(数据库)。它对业务代码隐藏了DBMS的复杂性。域层包含存储库的接口
领域服务:领域服务是一种无状态服务,它实现领域的核心业务规则。实现依赖于多个聚合(实体)类型或一些外部服务的域逻辑是有用的。
规范:规范用于为实体和其他业务对象定义命名的、可重用的和可组合的过滤器
领域事件:领域事件是在发生特定于域的事件时,以松散耦合的方式通知其他服务的一种方式
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。