模板方法模式 (2)
2. 模板方法中的钩子
何谓钩子?我们称,"默认不做事的方法"就为hook.那么,子类可以依据具体的情况来决定要不要覆盖他们。
现在我们将制作奶茶的过程添加一点动作进去。默认情况下呢,制作奶茶是放珍珠的。我们在奶茶倒入杯子前,默认加入珍珠。
1. TemplateMethod类
public void write(byte b[], int off, int len) throws IOException {if (b == null) { throw new NullPointerException();} else if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException();} else if (len == 0) { return;}for (int i = 0 ; i < len ; i++) { write(b[off + i]);}}public abstract void write(int b) throws IOException;