围绕业务订单进行的可扩展后台设计
2016-09-21 22:52
260 查看
围绕业务订单进行的可扩展后台设计
在互联网行业中,业务往往变化迅速,对于后台开发者来说,如何编写结构分明,逻辑清晰,能够进行快速扩展的代码是很重要的。
这里针对大多数系统都有的订单流转逻辑进行设计模式探索
业务订单的特点:
业务处理多对于一个订单的处理,往往涉及到商户,余额,供应商,区域,黑白名单,商品库存等一系列逻辑。
业务变化快
随着业务量的上升,原来可能是做不了的业务,现在也能开放了;原来是定义为失败的订单现在又能在后台进行重试等等。
业务可扩展
原来订单只要处理完成就可以了,现在可能需要在订单处理之前对商户ip进行黑白名单鉴权;针对特殊业务可能需要特殊处理。
针对上面这些问题这里给出的解决方案是采用
责任链的设计模式进行后台架构。
public interface Handler<REQ, RESP> { RESP handle(REQ req); }
public abstract class AbstractHandler<REQ, RESP> implements Handler<REQ, RESP> { protected Handler<REQ, RESP> next; protected abstract RESP doHandle(REQ req); @Override public RESP handle(REQ req) { RESP resp = this.doHandle(req); if (null == resp) return resp; if (null != next ) return next.handle(req); return resp; } public Handler<REQ, RESP> getNext() { return next; } public void setNext(Handler<REQ, RESP> next) { this.next = next; } }
对于具体业务的处理者只需要继承该抽象处理器,并指定next处理器就可以将处理结果传递给next处理器。
从而完成整个订单处理。每一个具体的处理器只需要关心自己应该完成的任务,从而对业务过程进行了分解,而且整个逻辑也更清晰。当需要对业务处理扩展时,只需要单独添加具体的处理器,而不需要对其他处理器的逻辑进行修改,减少的冗余,耦合。
相关文章推荐
- 后台管理框架之七 :业务逻辑设计
- 数据仓库的模型设计 A. 数据建模方法论 数据仓库模型设计遵循“自顶向下、逐步求精”的设计原则。 模型设计分为三个阶段: 1,概念模型 对业务的范围和使用,从高度上进行抽象概括,也就是划分主题域。 一
- 简议使用业务模型驱动进行软件的设计
- 可复用可扩展的红包后台系统设计方案
- 新增业务订单设计——产品形态随想
- ios 从前台返回到回台 从后台返回到前台 或者 支付宝支付订单后 对界面进行操作
- MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?
- golang结合lua进行http业务扩展
- 付钱拉后台支付系统的架构设计理念和业务痛点
- 京东虚拟业务多维订单系统架构设计
- Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)
- (假API)后台API没有设计好之前,前端开发用假API不失进度进行数据层开发
- 企业进行信息化顶层设计的核心方法 随着企业信息化建设的深入,应用层次和水平不断地提高,企业迫切需要集成化、自动化的信息管理系统来支撑企业业务的迅速发展需要,然而由于信息化建设的阶段性决定,企
- Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)
- 电商后台产品设计:订单拆单
- 后台业务账单和微信支付后台的订单对账步骤
- UML应用-应用Rational Rose 进行状态机分析与设计实例
- 用Eclipse进行可视化Java界面设计
- 用Eclipse,VE进行Java可视化界面设计
- 换个角度做设计:基于schema的全局业务数据定义。