- 博客(5)
- 收藏
- 关注
解释为什么Ruby nil.object_id等于4 。(真正要考察地是C)
[code="ruby"] > > nil.object_id = > 4 [/code] 原因是因为nil是一个固定的object,在如下在$rubyhome\lib\1.8\i386-mswin32中的ruby.h头文件里面有如下特殊对象的构造。 [code="c"] /* special contants - i.e. non-zero and non-fixnu...
2008-07-28 16:59:48
190
通过private的构造方法来强制一个类不能被实例化
要保证一个类不能被实例化(比如某些Utility类,主要是一些静态方法),为这个类写一个private的构造方法那是最好的了。 [code="java"] public class UtilityClass { private UtilityClass() { throw new AssertionError(); } ...... } [/code...
2008-07-18 17:34:05
909
对于一个单例的存取强制一个private constructor或者一个enum
在Java中有很多需要单例(Singleton)的场合,来保证其只被创建一次。先来看看2种在JDK1.5之前的2种实现方法,然后再看一种JDK1.5及以后才可以用的实现方法。 [list=1] [*]声明constructor为private,然后将该单例对象声明为public的。 [code="java"] // Singleton with public final field pu...
2008-07-17 17:18:03
232
使用Chain的Builder方法代替有超多参数的构造方法
我们有时候会遇到一些有超多参数的构造函数。其实对于日渐复杂的类来说,这种情况并不少见。使用Builder和一些method chain的改造,可以使我们的代码看起来更加DSL化。 [code="java"] Car car = CarBuilder.buildCar(CarType.MINI).engine(CarEngine.CVTT).size(3.15).build(); [/code...
2008-07-08 17:37:27
333
1. 使用静态工厂方法代替构造函数
在想创建一个对象的时候,尽量使用静态工厂方法(static factory method)来代替构造方法。 比如:Boolean b = Boolean.valueOf(true); 而非Boolean b = new Boolean(true); 好处之一,与构造方法不同,方法是有名字的。在弄一些类似DSL的时候,可能会比较有用。与其要记住很多构造参数的含义,不如用一个命名良好的方法来...
2008-07-04 15:26:38
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人