重构，新建3个类，希望框架更清晰