spring基于领域分析设计的架构规范

技术spring基于领域分析设计的架构规范本篇内容主要讲解“spring基于领域分析设计的架构规范”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring基于领域分析设计的

本文主要解释“基于领域分析和设计的spring架构规范”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“基于领域分析与设计的春季架构规范”!

领域聚合

让我们以一个相对简单的小型电子商务系统为例来说明几个概念。该电子商务系统的大致要求如下

我们的主打产品是甜品,计划用户可以通过微信小程序完成从点餐到付款的全过程。

用户可以在我们小程序的首页选择甜品主食,然后选择一些详细的配件进行搭配,最后下单。(为了简单起见,我们暂时不考虑购物车,即一个订单只有一个甜品。)

目前只允许在大厅就餐,不考虑配送。

对了,我们偶尔需要发放一些优惠券,用户在付款时可以输入优惠券进行抵扣(一次最多一张优惠券)。

我们希望能够记录每个用户从下单、付款到制作的全过程记录。

然后,我们就可以快速的画出这样的模型图。

spring基于领域分析设计的架构规范

简单来说,就是:

当然,用户可以创建多个订单,而无需下订单。

订单将至少生成一条订单变更记录(从创建开始)。

一个订单只对应一个产品,假设产品的“配件匹配”只作为产品的“备注”属性存储。

一张订单最多只能使用一张优惠券,而且优惠券在那个时候永远不能使用。

如果此时问你,你觉得那两个模型类的相互关系是最紧密的呢?相信几乎每个人都不反对这个答案。

spring基于领域分析设计的架构规范

也许你不能说为什么在这个时候,但至少从直觉,的角度来看每个人都会选择这种方式,而且是真的。

因为这是聚合——订单聚合。

他们的关系非常密切。有多近?如果非要挑一个最重要的因素,那就是:订单变更记录不能离开订单而单独存在.是的,它们必须在一起,订单是中心,变更记录是它的附属。如果订单不存在,或者没有指定订单,那么这个变更记录就没有意义。

其中,顺序被称为聚合根,或根实体。的所有操作都来自订单,而订单更改记录等非根实体不直接与外部世界打交道。

优惠券呢?优惠券不能只用于订单吗?不应该属于“订单优惠券”吗?

不,因为优惠券可以不用,那时候没有订单也是存在的,我们可以在不需要外界任何其他领域的情况下,直接对优惠券进行一些设置修改,这也说明它是一个独立的领域,或者说是一个独立的集合体。

至于分析的目的,我们将在拥挤模型一章中详细解释。

分层模型

下图显示了《领域驱动设计》中提到的分层架构。

spring基于领域分析设计的架构规范

关于原著中四层的介绍,这里就不在原文中重复了。根据我的理解(或疑问),我选择重点分别介绍一下:

用户界面层

实际上,这里有些混乱。不知道作者有没有包括前端应用。如果没有,那么可能有类似网关或路由配置层的东西。然而,这不是领域分析的重点。

00-1010这是一个与领域层的边界相对模糊的层。在原著中,这一层的描述如下:

定义软件能做什么.它不包括处理业务规则或知识,只是协调任务并将工作委托给下一层的协作域对象。

“定义软件可以完成的工作”,我们可以理解这是一个应用服务门户,一个功能单元和一个API。然后,以SpringMVC为例,我们开发的时候门户是什么?自然是@Controller。如果您需要事务支持,可以在这里添加@Transactional。不要以为交易不加@Service,也没什么奇怪的。摆脱这种思维惯性。

“它不包含处理业务规则或知识”

,并非完全“和业务无关”。广义上来说,连一个商业项目的整个架构都是为业务来服务,就算是遵循了“开闭原则”,保证了“扩展性”,依旧是以业务方向做主导。所以,应用层也会涉及业务,但是却非“核心逻辑”。那如何界定?我目前也没有想到一个可以简单描述出来的说法,只是做了一些相对简单粗暴的规定:如果这个功能要求用到一些公共的组件,诸如文件上传下载,EXCEL/WORD等文件解析等明显是工具型做法,一般来说都能放在这一层。

领域层

核心业务逻辑,之后我们讨论的主要内容都在这一层。

基础设施层

持久化读写,公共组件如上面提到的文件下载工具等,还有比如RPC的框架组件等等,都属于此层。这一层可以被上面的任何一层直接调用

到此,相信大家对“spring基于领域分析设计的架构规范”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/96659.html

(0)

相关推荐

  • 英国的英语怎么说,“UK”是王国还是帝国

    技术英国的英语怎么说,“UK”是王国还是帝国UK全程是United Kingdom of Great Britain and Northern Ireland——大不列颠和北爱尔兰联合王国英国的英语怎么说。简称联合王国—

    生活 2021年10月25日
  • dy刷粉网站推广马上刷,有没有抖音刷点赞双击的神器?

    技术dy刷粉网站推广马上刷,有没有抖音刷点赞双击的神器?我们刷抖音的时候都会发现我们经常看到的那些视频点赞量都是非常高的,而且被点击的概率也更高,可能你的朋友们也刷到了这个视频。所以抖音视频点赞量对于提高抖音视频热度是非

    测评 2021年11月11日
  • 如何进行Java 数据结构中二叉树前中后序遍历非递归的具体实现

    技术如何进行Java 数据结构中二叉树前中后序遍历非递归的具体实现本篇文章为大家展示了如何进行Java 数据结构中二叉树前中后序遍历非递归的具体实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希

    攻略 2021年11月9日
  • oracle 11g(oracle 11g 安装)

    技术orcle 11g rac crs状态正常但节点2数据库未启动怎么办小编给大家分享一下orcle 11g rac crs状态正常但节点2数据库未启动怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,

    攻略 2021年12月18日
  • 笔记本电脑性能排行,笔记本电脑价格及性能排行

    技术笔记本电脑性能排行,笔记本电脑价格及性能排行笔记本价格和性能排行?感觉您的提问有些问题..数码产品一般是一分钱一分货笔记本电脑性能排行,性能是和价格挂钩的,性能越高的笔记本,其价格肯定也越高,想低价格买到高性能的笔记

    生活 2021年10月25日
  • HBase原理、基本概念、基本架构-3

    技术HBase原理、基本概念、基本架构-3 HBase原理、基本概念、基本架构-3HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型

    礼包 2021年12月22日