摘要:
现在系统实现中,加法操作与移位操作运算速度差距不大,但是移位操作在做乘法的时候要快于乘法(减法是变相的加法,除法是变相的乘法)。在一些对运算速度要求高的系统中,移位操作往往能增加不少的效率。要掌握移位操作符,首先要对二进制有一定的了解。jdk中计算某一个二进制数之中1的数量的代码:public static int bitCount(int i) { // HD, Figure 5-2 i = i - ((i >>> 1) & 0x55555555); i = (i & 0x33333333) + ((i >>> 2) & 0x333 阅读全文
摘要:
装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式相比生成子类更为灵活。 应用环境举例:现在要求设计管理一系列的门。一些是普通门(CommonDoor),而由几个拥有报警功能(AlarmDoor)。我们很容易就想到继承,AlarmDloor继承了CommonDloor,并且实现alarm()方法。这样功能就完成了。 不过这样的继承方式很容易造成子类爆炸的问题。比如门有3种,警报器有3种。这样子类的就要有9种。为了减少子类的数量,我们又想到了用接口去定义警报器,在继承而来的具体门类(ConcreteDoor) 例如 XXXDoor中,我们去维护一个警报器.. 阅读全文