目录
业务背景:
现有一个咨询服务,但是咨询类型有很多种,比如有股票质押,期货,机构财富通等。
使用设计模式的目的:
因为具体业务类型繁多,如果使用大量if else则会导致代码冗余,代码不易维护,可读性差。故此,采用策略模式,完成不同业务类型咨询意向之间的解耦。
实现案例:
yml配置文件中配置所有策略类对象
配置策略类对象,作用是根据不同的序号,通过工简单工厂生成对应的具体策略类。
controller
因为业务类型众多,但是每个业务类型返回的vo不一样,这里采用泛型作为返回,但是接口只提供一个,根据不同的type进行区分,调用不同实现类。
DTO:
service
注入工厂类,通过工厂类去找到对应的策略类,再通过具体策略类的方法实现对应业务功能。
工厂类
工厂类的功能:从配置文件读取策略类,然后遍历去匹配对应的策略类。
抽象策略类以及具体实现策略类:
总结
以上就是具体实现,感觉还是有可以优化的地方。此贴主要是记录设计模式的实际应用。