写的一些常用类，可独立使用