* 又写了一点一点 重构了注册属性的方法