目录
第3次拆解 - 面向对象分析与设计
在完成了微服务的划分后,进入了详细设计阶段,需要针对每个微服务展开设计。此处作为架构师的我决定采用面向对象分析与设计。面向对象分析与设计是将现实世界中相关业务涉及的人、物、逻辑实体等映射为编程语言中的类,现实业务中的人、物、逻辑实体等的状态、操作等映射为类的属性和方法,面向对象分析与设计给业务和系统程序间的映射提供了一种设计的指导原则。接下来的建模都是围绕某一个具体的微服务展开的,我们将采用面向对象分析与设计的思路逐步丰富下图中右半部分的空白框(微服务内部设计)
。
3.1 交互入口实现层
软件系统虽然作为业务的映射,承载了业务的实现,但其作为一种技术实现,显然不可能剥离技术而唯业务的存在。由于之前我们定义了微服务间的交互(进程通信、事件驱动架构等)以及为前端UI交互提供的交互接口,此处的交互即为纯技术层面的实现,如我们决定采用基于Http/REST的接口通信(如Spring Mvc),采用基于RabbitMq的异步消息通知等,作为服务的提供方,我们需要有用来提供HTTP接口的代码实现,作为服务的依赖方,我们也需要有用来订阅异步消息的接收实现,这两处的共同特点就是由外部的系统、用户、服务等触发的引其当前服务的处理与执行,进而对系统的状态发生改变或作出回应。此层可作为服务的入口实现层
,包含了Http实现、MQ