解决代码重复的方法,最近工作中用得比较多,故写下体会。
一、对于有多个并行类处理相似的代码逻辑的重复代码。可以使用工厂模式or模板方法or策略模式解决,工厂模式是批量生产类或接口,使用 Spring 的 IoC 特性注入相应的子类,模板方法是通过抽象差异方法留给子类实现,策略模式则是根据不同的分支条件实施不同的策略(这个我用得比较多)。
二、对于有相同or相似的数据处理的重复代码或想统一注入某些方法于许多地方。这个时候可以使用自定义注解,描述其字段、方法,然后通过反射的方式获取元数据、操作数据调用方法、处理具体的业务逻辑。
三、实现配置化。比如像多个ftp这种就可以统一配置在nacos上,然后统一获取统一进行处理,这种就不用每加一个ftp就要加相似的代码了。然后ftp的上传、下载功能也可以做成配置化的,业务文件的上传、下载功能也可以统一做成配置化的,这样就避免了每新增一个业务场景就新增一个上传、下载业务文件的类。
暂时写这么多...
2021.11.23