加入收藏 | 设为首页 | 会员中心 | 我要投稿 四平站长网 (https://www.0434zz.com.cn/)- 云服务器、对象存储、基础存储、视频终端、数据应用!
当前位置: 首页 > 站长资讯 > 动态 > 正文

六边形架构和分层架构

发布时间:2021-03-07 15:49:57 所属栏目:动态 来源:互联网
导读:如: 执行成功就发个MQ 执行某个事件的时候,同步一下缓存 依赖关系为,domain依赖infrastructure 问题点: 按道理来说,domain层是写业务逻辑的,优化不会涉及到业务逻辑的改动,但是却改动了domain层。由于domain层依赖了infrastucture的原因,导致业务依

如:

  • 执行成功就发个MQ
  • 执行某个事件的时候,同步一下缓存
  • 依赖关系为,domain依赖infrastructure

问题点:

按道理来说,domain层是写业务逻辑的,优化不会涉及到业务逻辑的改动,但是却改动了domain层。由于domain层依赖了infrastucture的原因,导致业务依赖于具体的实现技术。所以,为了将业务与具体实现做分离,我们采用依赖倒置的手段去重构。

依赖倒置原则的包含如下的三层含义:

  • 高层模块不应该依赖低层模块,两者都应该依赖其抽象
  • 抽象不应该依赖细节
  • 细节应该依赖抽象

高层模块不依赖低层模块:那就可以在domain层定义存储的接口,如AARepository,但是不写具体的技术实现。

抽象不依赖细节:在domain层里,不依赖其他包的类,如用到数据存储时,直接调用domain的抽象接口即可。

高层通过依赖注入的方式,将基础设施的实现传到domain层中。

如此一来,我们的架构就不再是分层的结构(从上往下调用)。而是将抽象全部堆在domain层,将细节全部往application和infrastructure去推。而越抽象越稳定,所以通过这种做法能够有效减少业务的变更。

架构变成了一种从内而外的逻辑,越往内越抽象,越往外越细节。在北向网关,可以使用rest和dubbo去调用业务逻辑,南向网关可以将数据写到redis或mq。具体代码实现:

(编辑:四平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读