- 博客(6)
- 资源 (7)
- 收藏
- 关注
翻译 Effective Java 3rd 条目6 避免创建不必要的对象
这通常是恰当的:重用单个对象,而不是每次需要的时候创建一个新的功能相同的对象。重用既更快又更有风格。如果不可变,一个对象总是可以被重用(条目17)。作为不应该做的事情的一个极端例子,考虑这个语句:String s = new String("bikini");// 不要这么做!每次执行时这个语句时创建一个新的String实例,这些对象创建没有一个是必要的。String构造子的参数(“bikini”)
2017-12-30 18:38:54 538
翻译 Effective Java 3rd 条目5 依赖注射优于硬耦合资源
很多类依赖于一个或者多个相关资源。比如,一个拼写检测器依赖一个字典。这样的类实现为静态效用类,这是很常见的(条目4):// 不恰当的静态效用的使用 - 不灵活而且不可测试! public class SpellChecker { private static final Lexicon dictionary = ...; private SpellChecker() {} // 不可
2017-12-29 23:03:34 877
翻译 Effective Java 3rd 条目4 用私有构造子实现不可实例化
有时,你想编写一个仅仅是一组静态方法和静态域的类。这样的类有个坏名声,因为一些人滥用它们来避免用对象的方式来思考,但是它们确实有正当的用途。以java.lang.Math或者java.util.Arrays的方式,它们可以把在原始或者队列上相应的方法归类。以java.util.Collections的方式,它们也可以归类实现了某个接口的对象的静态方法(包括工厂)(条目1)。(就像在Java 8,你也
2017-12-29 15:54:06 636
翻译 Effective Java 3rd 条目3 用私有构造子或者枚举类型强化单例属性
单例(singleton)仅仅是一个恰好能实例化一次的类[Gamma95]。单例一般代表一个无状态的对象(比如,一个函数),或者一个本质唯一性的系统组件。一个类变为单例使得难于测试它的客户端,因为替代单例的模拟(mock)实现是不可能的,除非它实现了一个作为自己类型的接口。有两种通常的方式实现单例。两者都是基于保持构造子私有和导出提供获取这个单一实例的公开静态成员。在第一个方法中,成员是一个fina
2017-12-29 11:29:25 579
翻译 Effective Java 3rd 条目2 面临众多构造子参数时考虑builder
静态工厂和构造子都有一个限制:它们不能很好调节大量可选参数。考虑这个情况,一个类表示包装食品上的营养成分标签。这些标签有些是必需的域,食用份量、份数和每份卡路里数;还有二十多个可选域,总脂肪含量、饱和脂肪含量、反脂肪含量、胆固醇含量,钠含量等等。大多数产品中这些可选参数只有很少的非零值。对于这样的类,你打算用什么类型的构造子或者静态工厂?习惯上,编程人员用重叠构造子(telescoping cons
2017-12-28 15:05:49 555
翻译 Effective Java 3rd 条目1 考虑用静态工厂方法代替构造子
对于一个类,让客户端获取一个实例的传统方式是,提供一个公开的构造子(constructor)。另外一个技巧,应该成为每个程序员的工具库之一。一个类可以提供一个公开的静态工厂方法(static factory method), 这个静态方法简单地返回这个类的实例。这里有关于Boolean(boolean 的原始装箱类(boxed primitive))的简单例子。这个方法把boolean原始值转换到
2017-12-27 16:38:06 445
concurrent-patterns-best-practices-synchronization
2018-10-26
Wiley.Machine.Learning.Hands-On.for.Developers.and.Technical.Professionals
2017-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人