业务需求:
根据不同课程执行不同的逻辑,将来课程类型还会不断增加
理论上,应该在数据库建立type字段,根据不同的type
执行不同的逻辑,但是会有if -else,将来添加课程,需要
修改if-else内容,违反开闭原则,所以考虑使用策略模式进行扩展
直接上代码:
先定义一个课程handler接口

ai课具体实现

艺术课具体实现

课程实体,别的字段自己添加,我这里只需要type

添加一个注解,来区分类型

类型枚举

这块比较重要:
在spring启动的时候,将类型和对应的类都添加到map中
最后提供一个根据类型获取类的方法

实际调用:

返回结果

大功告成!!!!
网友评论