为了防止大量的if。。。else。。。或switchcase代码的出现,可以使用策略模式工厂模式进行优化。 在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下:Factory工厂类ServicepublicclassReportFactory{初始化的时候将所有的ReportService自动加载到Map中AutowiredprivatefinalMapString,ReportServicereportInsnewConcurrentHashMap();publicReportServicegetReportIns(Stringcode){ReportServicereportInstancereportIns。get(code);if(reportInstancenull){thrownewRuntimeException(未定义reportInstance);}returnreportI}}复制代码接口publicinterfaceReportService{StringgetResult();}复制代码实现类Component(valueA1)publicclassReportServiceA1implementsReportService{OverridepublicStringgetResult(){return我是A1;}}复制代码Component(valueA2)publicclassReportServiceA2implementsReportService{OverridepublicStringgetResult(){return我是A2;}}复制代码测试SpringBootTestpublicclassBlogServerApplicationTest{AutowiredReportFactoryreportFTestpublicvoidtest2(){Stringresult1reportFactory。getReportIns(A1)。getResult();System。out。println();System。out。println(result1);Stringresult2reportFactory。getReportIns(A2)。getResult();System。out。println();System。out。println(result2);}}复制代码 打印如下:我是A1我是A2复制代码总结 在平时的工作当中,写一些业务代码是无可避免的,但是只要不局限于现状,往往可以发现不一样的乐趣。就像我在报表的业务中学习到了策略模式工厂模式。