天天看點

支付系統中的設計模式05:觀察者與備忘錄模式

在前面的場景中,我們用構造器、政策、模闆方法、外觀等模式滿足了老闆的要求,剛有點沾沾自喜,想歇口氣,新的需求就迫不及待地迎面撲來——在産品需求評審時,公司的産(背)品(鍋)經(大)理(神)又提出了下面這幾個合情合理的要求:

1、交易完成後,要給使用者賬戶發送消息通知,通知使用者已付款等消息;

2、交易必須要做到不可抵賴,是以需要有交易快照作為證據來儲存交易相關資料;

3、支付系統需要根據訂單的不同狀态來決定下一步可以執行的動作。比如隻有待支付訂單才能付款、已取消/已逾時/已完成訂單就不能再支付、已支付的訂單不能重複支付等等。

确實,産品經理提的這些需求一點都不「偏門」,也是一個标準的支付系統需要具備的。是以就隻有開幹咯~

某件事情做完以後,如果需要告訴别人結果的話,要麼當面告訴别人,要麼就打對方電話通知對方。這種事後告訴别人結果的方法在開發裡面有個專門有的名詞,叫做「回調」。對于回調這個概念,稍微了解設計模式的小夥伴可能都知道哪個模式和它對應吧。

沒錯,那就是GoF的二十幾種設計模式中用得較多的模式之一:觀察者模式。

我們都有過這樣的體驗: