移动结构,拆分几个易于拆分的逻辑函数,降低耦合
加错误判断,更严谨,最小话原则,显式include头文件