设计管理应用程序中服务的付费订阅?

时间:2017-02-24 13:55:46

标签: java oop model-view-controller

假设我有一个假设的付费应用程序,如stackoverflow。该应用程序允许用户做两件事:

  1. 发布问题
  2. 发表回答
  3. 此应用程序收取20美元购买计划,允许发布10个问题和10个答案。

    从技术上讲,这两种行为都是通过完全不同的界面公开的

    interface Questions {
        postQuestion(String question);
    }
    
    interface Answers {
       postAnswer(int questionId, String answer); 
    }
    

    这两项服务都可通过不同的控制器通过网络访问。我需要跟踪用户发布的问题和答案的数量,以便我可以要求他们在达到限制时进行新的购买,而无需将此任务委托给服务。

    例如在Java中,我需要像Map<Method,Integer>这样的地图,它跟踪每个允许的方法被成功调用的次数。并且,通过拦截对这些服务的调用来维护此映射。此Map还需要数据库存储。

    谢谢!

1 个答案:

答案 0 :(得分:1)

在您的客户数据库中,您可以添加answerCounterquestionCounter

当客户注册时将这些值设置为10。

每次调用服务时,首先检查是否允许客户通过检查answerCounterquestionCounter(取决于请求)是否高于0来调用它。

如果允许客户发布回答/问题,则将answerCounterquestionCounter减1。

如果客户支付了新包装,则将这些值增加或增加到10。