Java复习2-对象与类
回顾基础知识过程中遇到的感觉需要记录一下的知识点。 封装 我们设计的class应当尽可能的高内聚,体现为封装的程度。一个class的属性应该只能自己修改,其他class都只是与本class沟通,而不应该有能力修改。比较常见的一个问题是Date属性。 业务开发中经常需要设计class的日期属性,比如birthday, createDate等。 public class User { private String name; private Date birth; public Date getBirth() { return this.birth; } } 我经常设计一个entity,填入字段,然后就直接getter, setter出去,尤其使用lombok后,更是连生成都改自动了。按照封装的要求,这样的做法是不合适的。因为其他class可以获取Date对象,Date对象是可变的。那么,就有可能会产生日期被修改的可能。 如果项目有引入Findbugs的扫描,这个class肯定会被扫描出来的,不应该返回一个可变对象。那么,怎么做才可以避免这个问题?我们确实需要暴露Date啊。 答案是暴露一...