代码结构调整，增加了两个写的重载方式