将实际中用的代码分离出来