文件服务设计(java代码最佳实践)

先献祭上最终的类图:

文件服务设计-类图.jpg

服务设计的几点感想:

1、分层

代码的组织方式多样。

内外区分:

以是否对外提供jar包方式,interface或者叫api,是对外提供的接口方法。这快翻译下就是业务的定义,对应为rpc中需要被客户端引用的jar包,这里的代码主要以两个方向汇聚,一个是服务开发者对业务的理解,设置的标准边界。
例:你是一个支付接口,账号,钱,商品为必须,优惠券选填,这种标准接口由服务开发者定义。
例:你是一个校园基础服务,业务方要提供班级学生放学之后没有延时班的学生列表,这业务是需求来源。

功能区分

以springcloud feign为例
api 接口,这层只定义
controller,实现api,这层处理参数。不处理业务逻辑
servcie 服务层 ,业务逻辑实现的主要层次,按照业务复杂层度,可以继续划分
建议划分:
1、门面服务
2、职能服务
3、单表服务

2、流程标准化

1、标准流程定制
2、复用标准流程

3、异步

1、负责功能用异步操作
2、提供回调通知

4、抽象统一

1、底层有异构表或者数据,但上层表现为同一业务,中间因出参不同无法使用策略方式,则可以用泛型抽象
2、底层实现,中间提供统一操作方法

其他设计补充

用例图:

文件服务设计-用例图.png

流程图:

文件服务设计-上传流程.png

时序图:

文件服务设计-上传时序图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容