问题一:责任链(Chain of Responsibility)方法设计模式是什么?
责任链(Chain of Responsibility)方法设计模式是什么?
参考回答:
责任链是说将请求让队列内的处理器一个个执行,直到找到愿意执行的。
商业能力扩展、域扩展,在执行回收结果的时候,会遍历实现的插件,并结合回收规则,进行及时的熔断。这和责任链的逻辑是类似的。以确认收货打款时“是否跳过通知支付”为例,TMF执行引擎会遍历产品包、App包的实现,找到第一个返回要 true(跳过)的结果时,就会停止执行,整体返回 true。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620452
问题二:策略(Strategy)方法设计模式是什么?
策略(Strategy)方法设计模式是什么?
参考回答:
策略是说完成一个事情有不同的算法,可以进行相关切换。
在逆向退款中,需要支持不同的退款链路,有些需要是担保交易,有些是保证金链路,有些是微信支付,有些是退卡、退资产。为了支持多种出账策略,采用了策略模式,可以通过扩展点定制各种资金策略,同时可以执行单个,也可以执行多个。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620453
问题三:观察者(Observer)方法设计模式是什么?
观察者(Observer)方法设计模式是什么?
参考回答:
观察者模式是说我们通过注册、回掉这样的协作设计,完成变化通知的协作机制。
交易中,系统内部的观察者模式不多见。但是系统间基于消息的观察模式还是很多的。比较典型的有逆向的0s退:通过监听退款创建的消息,进行同意调用,实现了0s退的快速同意功能。通过消息的异步通知方式,既可以较好地进行解耦,也可以在失败时利用消息的重投机制,增加成功的概率。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620454
问题四:状态(State)方法设计模式是什么?
状态(State)方法设计模式是什么?
参考回答:
状态模式是说在不同的状态下,有不同的处理行为。
交易系统中引入了工作流,会定义业务活动可以经历的状态,每个状态可以进行的操作。比如:普通担保准交易流程,就包含:创建外部支付交易、付款回调、创建物流单、发货、确认收货 这些状态节点。每个节点也定义了可以进行什么操作,比如在 创建外部支付交易 这个节点,就可以执行支付校验、关闭订单、修改价格等操作,但是不能进行打款、退款等操作,因为还没有付款。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620455
问题五:中介者(Mediator)方法设计模式是什么?
中介者(Mediator)方法设计模式是什么?
参考回答:
当多个类之间要协调的时候,往往引入中介者进行协调,减少大家的知识成本。
交易系统中的流程执行过程中,会有一个大的上下文,这个上下文会协调各个领域的数据。比较典型的一个场景是,各个编排节点都可能会影响到数据更新,需要有一个地方存起来,然后交给最后的更新节点。这个传送信息的角色往往就落到了上下文这个中介者身上。下面是逆向流程中更新协作的一个大致结构。
关于本问题的更多回答可点击原文查看: