领域驱动开发(DDD)Web开发中的典型分层

  1. UI

  在典型的Spring Web层中,我们把协议接口这层也定义为UI的一部分,一般来说就是Controller实现的这部分功能。主要作用是从Web接口获取用户传过来的参数,然后发送给业务装饰层进行调用,获取业务装饰层的返回结果并以约定形式返回给浏览器之类。

  1. 业务装饰

  业务装饰层接受UI层的调用,并返回结果给UI层。

  业务装饰层通过调用业务层+存储层,实现具体的业务。

  为什么需要业务装饰层?由于UI上的功能,并非全部是业务,比如一些查询功能。这些功能放到哪个业务用例都不合适,所以让业务装饰层直接调用存储层实现。

  1. 业务

  业务层包括业务对象、业务用例。来实现具体的业务功能。业务层是纯粹的、不依赖任何其他层的。在Java程序中,就是纯粹的POJO,用来实现一组业务功能。业务层通过定义存储接口,并自己调用存储接口实现完整业务。

  业务层定义的存储接口,通过依赖倒转原则,由外部来实现。因此业务层和具体的存储是完全解耦的,可以随时替换。

  在Spring Web中,可以通过外部自行组装Bean,将业务用例的Service组装成Spring Bean,并将存储层的对象注入到业务的Service中。

  1. 存储

  这里的存储是广义上的,包括但不限于:数据库、文件、其他大对象存储服务、远程服务、消息队列等。根据业务接口需要实现比如存储、第三方业务(如短信)、异步调用(消息队列)、同步调用(REST、RPC)等。

转载于:https://www.cnblogs.com/bobdeng/p/8688159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值