天天看点

支付系统中的设计模式05:观察者与备忘录模式

在前面的场景中,我们用构造器、策略、模板方法、外观等模式满足了老板的要求,刚有点沾沾自喜,想歇口气,新的需求就迫不及待地迎面扑来——在产品需求评审时,公司的产(背)品(锅)经(大)理(神)又提出了下面这几个合情合理的要求:

1、交易完成后,要给用户账户发送消息通知,通知用户已付款等消息;

2、交易必须要做到不可抵赖,所以需要有交易快照作为证据来保存交易相关数据;

3、支付系统需要根据订单的不同状态来决定下一步可以执行的动作。比如只有待支付订单才能付款、已取消/已超时/已完成订单就不能再支付、已支付的订单不能重复支付等等。

确实,产品经理提的这些需求一点都不「偏门」,也是一个标准的支付系统需要具备的。所以就只有开干咯~

某件事情做完以后,如果需要告诉别人结果的话,要么当面告诉别人,要么就打对方电话通知对方。这种事后告诉别人结果的方法在开发里面有个专门有的名词,叫做「回调」。对于回调这个概念,稍微了解设计模式的小伙伴可能都知道哪个模式和它对应吧。

没错,那就是GoF的二十几种设计模式中用得较多的模式之一:观察者模式。

我们都有过这样的体验: