导出测评报告
任务:根据文档需求,完成医疗卫生测评报告的导出。按照年龄段,性别,职称三个方式。
挑战:
实现上:年龄有三段,性别两种,职称四类。需要导出9种结果(即使测试结果是同一个分数,导出的结果都应该不一样)。
代码上:原来是面向过程编码,if else 方式,我不能继续else if 下去了。
分析问题:
1,原来项目中已经有三类测评报告的导出成pdf文档(胜任力报告,16PF报告,律师资格从业测评报告)。但是原来都是if else if else if else。代码结构非常不清晰。
2,代码就是瀑布式的,没有一定的抽象层级。这可不行。
3,基于这种现象。我得思考我应该做些什么了。
4,当我看见别人的 if elseif elseif else的时候,我的第一个想法就是,我要用面向对象的多态思想。
5,分析自己做的这件事情(导出医疗卫生测评报告),跟已有的东西有怎样的联系。首先他们都是种平行的关系。我得抽象出来一个模板基类,然后我扩展一类导出报告,我只要继承基类,重写其实现方法就可以了。并且采用一个单独的类来维护各个类别,杜绝在客户代码中随意修改,要修改去专门的类中去修改。
6,这张类图是面向对象的一种思维方式,这样编码使代码弹性好,以后扩展导出报告的时候,就只需要继承基类,重写实现方法就可以了,无需在原有代码上修改,保证原有代码的稳定性,不会引入bug。
7,附上整洁的代码。