【发布时间】:2018-05-09 05:13:19
【问题描述】:
我有一个财务系统,我必须设计一个用于保存、更新和控制限制的模块。 您可以知道每个客户都有一个 UserID,并且每个 UserID 每天都有一个最大信用额度。例如,UserID = 12 的 MaxAmountPerDay = 10$ 和 CurrentAmountPerDay。
一开始我想设计一个简单的模块,定义一个表格如下:
User ID | MaxAmountPerDay | CurrentAmountPerDay
-------------------------------------------------
12 | 10 | 0
25 | 100 | 84
现在您可以想象,当 UserID = 12 的客户完成交易时,我必须控制 交易金额 + 当前金额 > 最大金额 然后抛出异常否则我必须执行事务并更新当前金额,当更新后发生异常时,我必须回滚更新操作。(更新和回滚在不同的数据库事务中,因此回滚是与新金额相同的更新)
在我做这个设计之前,我决定寻找一个更好的解决方案,甚至是一个开源框架来做这件事,因为我猜我的客户的需求将来会发生变化,例如他们可能需要MaxAmountPerMonth,或者我现在不知道的更多要求。
【问题讨论】:
标签: java design-patterns frameworks open-source