策略模式、模板方法模式、工厂模式的组合使用
信用卡系统在额度服务中设计模式的应用
1.信用卡消费过程中涉及额度服务的功能分为两部分:额度检查和额度占用
简单介绍下额度体系,额度分为卡户人三层,客户首次申请信用卡时会新建账户层额度和持卡人层额度,而卡片层额度指的是附属卡的限额,是流量控制,不是真正的额度。只有给其他人开通附属卡时才会进行赋值。客户可以申请多张信用卡,此时会再次新建账户额度,但持卡人层额度是控制所有账户的额度。
正常一笔信用卡消费交易进来会占用账户层的和持卡人层额度。此时需要先检查额度是否够用,然后再进行对应额度节点的占用。
2.额度检查通过后会根据不同的交易类型,对额度节点实现不同的占用方式,此处使用的策略模式来进行实现
①定义接口SceneHandler,其中存放公用方法use,该方法是所有占用方式的公用逻辑
②定义工厂接口存储所有的交易类型对应的Handle,使用map存储,提供get方法
③定义额度占用抽象类,重写接口的use方法,提供默认实现方式。对于一些通用的交易类型按该方法进行处理。
④定义具体交易类型的实现类,继承额度占用抽象类,可以重写父类中的方法,以实现不同的业务占用规则。