
effective java
文章平均质量分 62
yuhan_9204
这个作者很懒,什么都没留下…
展开
-
创建和销毁对象
1.考虑用静态工厂发方法代替构造器 提供静态工厂方法较之提供公有构造器,具有如下几大优势:静态工厂方法与构造器不同的第一大优势在于,他们有名称。当一个类需要多个带有相同签名的构造器时,就用静态工厂方法代替构造器,并且慎重地选择名称以便突出他们之间的区别。静态工厂方法与构造器不同的第二大优势在于,不必每次调用它们的时候都创建一个新对象。可以将构建好的实例缓存起来,进行重原创 2016-06-22 20:03:10 · 882 阅读 · 0 评论 -
对于所有对象都通用的方法
8.覆盖equals时请遵守通用规定需要满足的条件: 类的每个实例本质上都是唯一的。 不关心类是否提供了“逻辑相等(logical equality)”的测试功能。 超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的。 类是私有的或是包级私有的,可以确定他的equals方法永远不会被调用。 需要覆盖equals:如果类具有自己特有的“逻辑相等”概原创 2016-06-27 11:41:06 · 747 阅读 · 0 评论 -
使类和成员的可访问性最小化
要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰的隔离开来。然后,模块之间只通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况。这被称为信息隐藏或者封装。由于我们实现了很好的封装,只提供若干的API供客户端代码来访问,非AP转载 2016-07-02 20:40:14 · 571 阅读 · 0 评论 -
在公有类中使用访问访问方法而非公有域
如果类可以在它所在包的外部进行访问,就提供访问方法。如果类是包私有的,或者私有的嵌套类,直接暴露它的数据域并没有本质的错误。总之,公有类永远都不应该暴露可变的域。虽然还是有几个问题,但是让公有类暴露不可变的域,危害比较小。但是,有时候需要会用到包级私有的或者私有的嵌套类来暴露域,无论这个类是可变还是不可变。原创 2016-07-04 13:54:25 · 697 阅读 · 0 评论