- 浏览: 4720 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
lvwenwen:
顶,支持!
Junit源码分析 -
guitar427:
哈哈
第4条--通过私有构造器强化不可实例化的能力 -
iamhere2012:
确实没什么可写的东西
第4条--通过私有构造器强化不可实例化的能力 -
iamhere2012:
呃,暂时持保留意见
第2条--遇到多个构造器参数时考虑用构建器 -
iamhere2012:
实际上静态工厂的第一个缺点也就是它强制使用复合的的优点了。。。 ...
第1条--考虑用静态工厂方法代替构造器
文章列表
写在开头:走技术这条路永远也不能停止学习,工作快三年了,虽然一直都有坚持学东西,也经常在各大技术论坛闲逛,不过挺遗憾自己没有把学习的收获和心得记录下来,正好最近也不是很忙,就把之前的东西再重新理 ...
先说几句题外话,重新看这本书,真的是有很多新的收获,而且明显地感觉比第一次学习时轻松很多,所以永远不要放弃学习,即使过程再艰难再晦涩,只要坚持去做去学总会有提升,而一点一点的提升最终就会产生一个巨大的质变,再回头去看的时候就会惊讶地发现其实自己已经走了很远。对于初学者来说,仔细读JDK的源码和一些优秀框架的源码对于编程能力的提高是非常有帮助的,先去读一些常用接口和类的源码,比如java.lang、java.util、java.io包下面的一些东西,学习java访问数据库时候可以参考java.sql包,学习网络编程可以参考java.net包去看,学习并发编程可以再去研究java.util.co ...
这条内容很少,不过还是简单记录一下吧有时候,我们会设计一些类,它们只提供静态方法和静态域,这些类被实例化是完全无意义的。这时候提供一个私有构造器来保证它不能够被实例化是非常严谨的做法,事实上,Java提供的java.lang.Math、java.util.Arrays包括第一条中提到的java.util.Collection等工具类都实现了一个私有的构造器,这个私有的构造器的原理我想就没必要说了吧。这种做法带来的一个副作用是这种类不能被继承。不过这实在是无关紧要的,谁会去继承工具类呢。。
学习这条首先要了解什么是Singleton,Singleton就是仅仅被实例化一次的类,我们先来看一个常见的单例:
public class Singleton {
public final static Singleton INSTANCE = new Singleton();
private Singleton(){
}
}
这样的单例其实并不能完全保证该类只被实例化一次,攻击者可以通过反射获得私有的构造器,并执行setAccessible(true)方法使其能够被访问,这就破坏了单例只能被实例化一次的特 ...
这条其实没什么好说的,每个程序员都遇到过参数大爆炸的情况,面对大量的可选参数,怎么办?直接上例子。考虑用一个类表示食品外包装的营养成分标签。这些标签中的有几个域是必须的:每份的分量,每罐的含量以及每份的卡路里,还有超过20个的可选域:总脂肪量,饱和脂肪量,转化脂肪,胆固醇等等,大多数产品在某几个域中都会有非零的值。
Public class NutritionFacts {
private final int servingSize;//ml required
private final int serings;// per container required
...