调整了整体结构，让一个类只做做一件事，把功能复杂的类拆分成多个类