
effective java
文章平均质量分 74
MachineChen
这个作者很懒,什么都没留下…
展开
-
第2条:遇到多个构造器参数时要考虑用构建器
静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。考虑用一个类表示包装食品外面显示的营养成份标签。这些标签中有几个域是必需的:每份的含量、每罐的含量以及每份的卡路里,还有超过20个可选域:总脂肪量、饱和脂肪量、转化脂肪、胆固醇、钠等等。大多数产品都只有几个可选域中会有非零的值。对于这样的类,应该用哪种构造器或者静态方法来编写呢?程序员一向习惯采用telescoping c...原创 2018-06-26 00:00:27 · 312 阅读 · 0 评论 -
第1条:考虑用静态工厂方法代替构造器
通常我们创建对象的方法有两种:使用类公有的构造器使用类的静态方法返回一个实例对象静态方法的优点:1.静态工厂方法与构造器不同的第一大优势在于,它们有名称静态工厂方法的名字由自己命名,而构造方法必须与类名相同。//使用构造器方法获取到一个素数BigInteger prime = new BigInteger(int, int ,Random);//使用静态工厂方法Bi...原创 2018-06-25 22:28:11 · 842 阅读 · 0 评论 -
第4条:通过私有构造器强化不可实例化的能力
对只有静态方法和域的类,主要用于把基本类型的值或数据类型上的相关方法组织起来(Math,Arrays),可以通过Collections的方法把实现特定接口的对象上的惊天方法组织起来,可以利用这种类把final类上的方法组织起来,以取代扩展该类的做法。此工具类是不希望被实例化的,实例化对他么有任何意义。然后我们如果不提供构造器,jvm会自己提供,那还是会被实例化,那么我们只要在类中提供一个私有的构造...原创 2018-07-08 15:51:26 · 294 阅读 · 0 评论 -
第5条:避免创建不必要的对象
最好能重用对象而不是在每次需要的时候就创建一个相同功能的新对象。如果对象是不可变(immutable),它就始终可以被重用String s = new String("stringette");每次执行上面的语句都会创建一个新的String实例。因为”stringette”本身就是一个String实例,这和构造器创建出来的新对象功能方面完全相同。如果频繁调用这一方法,就会创建成千上...原创 2018-07-08 19:22:48 · 338 阅读 · 0 评论 -
第3条:用私有构造器或者枚举类型强化Singleleton属性
0换句话尽快原创 2018-07-04 09:07:27 · 545 阅读 · 0 评论