文章目录
本文阐述如何运用设计模式在代码设计中的应用,通过案例说明介绍。本文涉及的业务需求场景有:计算引擎、资金方准入、产品规则准入、产品费用项重置。通过案例引用的设计模式包括:模板方法模式、责任链模式、策略模式、工厂方法模式、中介者模式、观察者模式。
1、设计原则的应用意义
2、揭秘计算引擎的设计理念
目前金融产品的核心是面向车贷放款前车贷总金额的公式,因此其根本也就是围绕着车贷费用项的计算,这些费用项包括(平台费、GPS费、保险费、人身保险费、续保押金等)。而金融产品中心系统设计理念就是针对不同费用项以规则形式存储的,对于不同产品和经销商门店也就存在不同的费用项利率(如贷款利率、人身保险费率、平台费率等)。鉴于此,设计之初,就是通过分解每一个费用项计算器,通过先校验,再计算的思路把每个计算器串接起来,最后累计出车贷总金额。
2.1、计算引擎流程图
2.2、应用设计模式介绍
2.3、源码剖析
2.4、扩展性
3、揭秘资金方准入的设计理念
资金方是对车贷产品的进一步抽象封装,目前包括XX、XX等相关资金方,对于资金方要求的硬性和车贷条件,系统支持针对不同资金方设置不同纬度的准入条件(包括主贷人准入、车辆准入、贷款准入),而不同的准入包括不同的条件。
主贷人准入(征信方式、年龄、月收入、驾驶证归属人、从事行业、户籍等)。
车辆准入(是否二手车、车型、车牌类型、里程、车龄等)
贷款准入(还款期限、车贷金额、首付比等)
因此我们针对这些条件属性进行抽象封装,以责任链形式执行。
3.1、规则条件分类
3.2、UML类图关系
3.3、流程图
3.4、应用设计模式
4、揭秘产品规则准入的设计理念
目前对于车辆保险和车辆TX依然是以规则形式并配置相应公式挂靠在车贷产品上,而对于一个产品,对于不同条件可以设置不同配置公式,对于车辆保险和车辆TX就需要返回规则校验信息。
4.1、业务特性
4.2、规则条件
包括:实际销售价、车辆贷款金额、总贷款金额、首付比、车龄、里程、车类等。
4.3、UML类图
范围类抽象类:AbstractScopeRuleHandler
区间类:AbstractRangeRuleHandler
5、揭秘产品费用项重置的设计理念
适用于退回经销商因修改了车贷相关信息,接口就需要根据最新条件调用金融产品接口返回当前当前费用项是否重置情况。包括:利率档位、GPS档位、平台费等。
5.1、业务特性
5.2、应用设计模式介绍
5.3、UML类图
5.4、其他设计模式应用
下面的是我的公众号二维码图片,欢迎关注。