Action Link开发模式

本文介绍了在重构金融平台APP时,采用Action Link开发模式来组织程序逻辑。Action Link确保线程安全,允许动态调整流程,支持取消操作,并通过前置条件自动准备数据。在复杂场景下,如VC执行action1,它依赖于action2,3,4,而action2的前置条件可能在运行时改变。这种设计提高了代码复用性和调试便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚刚换工作,到新公司的任务是重构公司的APP,有了灵感写了这个架构。
先介绍背景: 1、APP是一款金融平台产品,要接入很多不同流程的金融产品。
                    2、产品虽然流程不同但是大部分的流程都可以复用。
                    3、未来可能会在短时间内接入更多的产品。
                    4、希望可以有一个简单的使用入口和出口,便于程序的开发和调试。

再介绍设计的构想:
1、希望可以将程序逻辑划分成可以复用的action。
2、action使用者调用时只关心目标。并不关心action需要的准备的数据和条件。
3、action需要准备的数据和条件都由其前置条件action进行自动准备,调用者并不关心。
4、在复杂情况下,action可能会由前置条件的action的结果更换前置条件action并重新开始。
5、action link可以保证线程安全可配置。
6、action可以由调用者随意cancel。
7、action可以在action还未执行时动态的添加删除action。
8、action的设计者可以有机会对异常情况进行处理,并自己定制成功失败的条件。
9、action的前置条件如涉及用户可交互的洁面,应使用一个manager负责向action报告action的成功失败即可。
10、执行者可以选择代理和block作为回调。

这是目前遇到的一个最复杂的情况,
1、VC执行action1这个流程。
2、action2,action3、action4为action1的前置条件,任一失败即action1失败。
3、action5为action2的前置条件。
4、根据action5的结果,如果满足条件1则将action6置为action2的前置条件,如果满足条件2则将actiion7置为action2的前置条件,如均不满足则失败。
5、action2的前置条件均准备完成,执行action2。
6、action2,action3,action4均执行成功执行action1。
7、action1成功报告VC执行成功,失败则报失败给你VC。


如果我们将来有一个action0需要action1的结果则可以将action1作为前置条件,整个流程也会被复用,如只需部分的流程可以将Action Link的一部分剥离出来进行复用,目前这套框架已经开发完成,实验成功。我还在继续完善欢迎大家指出不足或者还有哪些可能会遇到的不能满足的需求。

转发(Action Link开发模式)
http://www.eryige.com/forum.php?mod=viewthread&tid=174&fromuid=4
(出处: 二一个)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值