- UI
在典型的Spring Web层中,我们把协议接口这层也定义为UI的一部分,一般来说就是Controller实现的这部分功能。主要作用是从Web接口获取用户传过来的参数,然后发送给业务装饰层进行调用,获取业务装饰层的返回结果并以约定形式返回给浏览器之类。
- 业务装饰
业务装饰层接受UI层的调用,并返回结果给UI层。
业务装饰层通过调用业务层+存储层,实现具体的业务。
为什么需要业务装饰层?由于UI上的功能,并非全部是业务,比如一些查询功能。这些功能放到哪个业务用例都不合适,所以让业务装饰层直接调用存储层实现。
- 业务
业务层包括业务对象、业务用例。来实现具体的业务功能。业务层是纯粹的、不依赖任何其他层的。在Java程序中,就是纯粹的POJO,用来实现一组业务功能。业务层通过定义存储接口,并自己调用存储接口实现完整业务。
业务层定义的存储接口,通过依赖倒转原则,由外部来实现。因此业务层和具体的存储是完全解耦的,可以随时替换。
在Spring Web中,可以通过外部自行组装Bean,将业务用例的Service组装成Spring Bean,并将存储层的对象注入到业务的Service中。
- 存储
这里的存储是广义上的,包括但不限于:数据库、文件、其他大对象存储服务、远程服务、消息队列等。根据业务接口需要实现比如存储、第三方业务(如短信)、异步调用(消息队列)、同步调用(REST、RPC)等。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步