Week06 总结

用户头像
uangguan
关注
发布于: 2020 年 07 月 15 日

目前参与的项目,是一个车联网项目平台,由多种角色围绕着同一个订单展开

一.多种角色

1.用户方,消费者的车出了故障,可以找打电话找下单方进行报案,也可以使用平台的app或者h5下单

2.下单方,如保险公司,114,有消费者方的资源,但是没有服务方的资源

3.平台方,主要是对接服务方和下单方,将服务方和下单方的资源在平台汇集,进行匹配

4.服务方,接单并提供服务,去现场进行故障维修服务

二.一个订单有不同的生命周期,不同状态触发不同的事件

1.新建,发消息给平台方

2.已派单,记录变更时间,打语音电话给服务方提醒服务方接单

3.重新派单,记录变更时间,打语音电话给服务方提醒服务方接单

4.已接单,记录变更时间,发消息给平台方

5.已到达,记录变更时间

6.派单失败,记录变更时间

三.目前订单类型分为两种,事故和救援



目前的代码架构

1.事故和故障两份代码,共用的方法用if语句去区别,两者订单共用数据库表结构,以orderType字段去区分,两者有些字段80%的字段时一致的,20%的字段不一致



2.当状态变更的时候,在变更的流程里同步阻塞地依次调研各种方法



3.多种角色,根据当前登录用户的角色,用if去区分不同操作逻辑



改进

1.采用策略,为多种角色创建对应的类对象,共同实现一个接口,该接口定义了各个角色都具有的方法,根据当前登录用户角色动态的执行该方法



2.采用模版方法模式,为订单创建抽象订单类,事故和故障分别继承抽象订单类,在抽象订单类中定义通用的操作,子类根据自己的业务特点重写父类的方法



3.观察者设计模式

为订单状态设置监听器,当状态变更时,触发对应的方法,后期可以改成异步非阻塞调用

用户头像

uangguan

关注

还未添加个人签名 2017.10.20 加入

还未添加个人简介

评论

发布
暂无评论
Week06总结