优化并抽象（三）完成