假设我有一个假设的付费应用程序,如stackoverflow。该应用程序允许用户做两件事:
此应用程序收取20美元购买计划,允许发布10个问题和10个答案。
从技术上讲,这两种行为都是通过完全不同的界面公开的
interface Questions {
postQuestion(String question);
}
interface Answers {
postAnswer(int questionId, String answer);
}
这两项服务都可通过不同的控制器通过网络访问。我需要跟踪用户发布的问题和答案的数量,以便我可以要求他们在达到限制时进行新的购买,而无需将此任务委托给服务。
例如在Java中,我需要像Map<Method,Integer>
这样的地图,它跟踪每个允许的方法被成功调用的次数。并且,通过拦截对这些服务的调用来维护此映射。此Map还需要数据库存储。
谢谢!
答案 0 :(得分:1)
在您的客户数据库中,您可以添加answerCounter
和questionCounter
。
当客户注册时将这些值设置为10。
每次调用服务时,首先检查是否允许客户通过检查answerCounter
或questionCounter
(取决于请求)是否高于0来调用它。
如果允许客户发布回答/问题,则将answerCounter
或questionCounter
减1。
如果客户支付了新包装,则将这些值增加或增加到10。