先献祭上最终的类图:
服务设计的几点感想:
1、分层
代码的组织方式多样。
内外区分:
以是否对外提供jar包方式,interface或者叫api,是对外提供的接口方法。这快翻译下就是业务的定义,对应为rpc中需要被客户端引用的jar包,这里的代码主要以两个方向汇聚,一个是服务开发者对业务的理解,设置的标准边界。
例:你是一个支付接口,账号,钱,商品为必须,优惠券选填,这种标准接口由服务开发者定义。
例:你是一个校园基础服务,业务方要提供班级学生放学之后没有延时班的学生列表,这业务是需求来源。
功能区分
以springcloud feign为例
api 接口,这层只定义
controller,实现api,这层处理参数。不处理业务逻辑
servcie 服务层 ,业务逻辑实现的主要层次,按照业务复杂层度,可以继续划分
建议划分:
1、门面服务
2、职能服务
3、单表服务
2、流程标准化
1、标准流程定制
2、复用标准流程
3、异步
1、负责功能用异步操作
2、提供回调通知
4、抽象统一
1、底层有异构表或者数据,但上层表现为同一业务,中间因出参不同无法使用策略方式,则可以用泛型抽象
2、底层实现,中间提供统一操作方法