设计的非常优雅,必须要研究下源码