参考了他人的一些见解,以下是自己的一些拙见。
这样设计的目的有:
1、隐藏类的具体实现细节。因为成员变量是类的重要组成部分,有些变量信息不能直接暴露给使用者。
2、权限控制。因为setter方法的回调,提供者可以预先把一些控制逻辑封装在setter方法中,例如age不能是负数等。让使用者只能通过规定的方法来获取属性或设置合理的属性。
3、便于后续维护。随着业务发展等实际需要,一些属性可能不存在或是名字要修改,因为使用者只是通过getter方法获取的属性,因此只需在父类中修改,而不需要使用者修改。