优化了构造方法