交易链路设计原则&模式问题之中介者(Mediator)方法设计模式是什么,如何解决

简介: 交易链路设计原则&模式问题之中介者(Mediator)方法设计模式是什么,如何解决

问题一:责任链(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)方法设计模式是什么?


参考回答:

当多个类之间要协调的时候,往往引入中介者进行协调,减少大家的知识成本。

交易系统中的流程执行过程中,会有一个大的上下文,这个上下文会协调各个领域的数据。比较典型的一个场景是,各个编排节点都可能会影响到数据更新,需要有一个地方存起来,然后交给最后的更新节点。这个传送信息的角色往往就落到了上下文这个中介者身上。下面是逆向流程中更新协作的一个大致结构。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/620456

相关文章
|
28天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
8天前
|
设计模式 Java Kotlin
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
本教程详细讲解Kotlin语法,适合希望深入了解Kotlin的开发者。对于快速学习Kotlin语法,推荐查看“简洁”系列教程。本文重点介绍了构建者模式在Kotlin中的应用与改良,包括如何使用具名可选参数简化复杂对象的创建过程,以及如何在初始化代码块中对参数进行约束和校验。
12 3
|
1月前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式
|
29天前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。
|
1月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
1月前
|
设计模式 Java Spring
spring源码设计模式分析-代理设计模式(二)
spring源码设计模式分析-代理设计模式(二)
|
1月前
|
设计模式 Java 测试技术
Java设计模式-UML与设计原则(1)
Java设计模式-UML与设计原则(1)
|
10天前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
23 0
|
1月前
|
设计模式 Java
Java设计模式-工厂方法模式(4)
Java设计模式-工厂方法模式(4)
|
2月前
|
设计模式 XML 存储
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
文章详细介绍了工厂方法模式(Factory Method Pattern),这是一种创建型设计模式,用于将对象的创建过程委托给多个工厂子类中的某一个,以实现对象创建的封装和扩展性。文章通过日志记录器的实例,展示了工厂方法模式的结构、角色、时序图、代码实现、优点、缺点以及适用环境,并探讨了如何通过配置文件和Java反射机制实现工厂的动态创建。
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)