本次对代码进行了第二次大规模重构，建立了多个包，分别控制各个部分的功能