模板方法模式是一種行為設(shè)計(jì)模式,它定義了操作中的算法的骨架,將一些步驟延遲到子
模板方法模式是一種行為設(shè)計(jì)模式,它定義了操作中的算法的骨架,將一些步驟延遲到子類(lèi)中實(shí)現(xiàn),使得子類(lèi)可以不改變算法的結(jié)構(gòu)就可以重定義該算法的某些特定步驟。
類(lèi)的結(jié)構(gòu):
- AbstractClass(抽象類(lèi)):定義了一組抽象的方法,這些方法可以被子類(lèi)實(shí)現(xiàn)。
- ConcreteClass(具體類(lèi)):實(shí)現(xiàn)了抽象類(lèi)中定義的抽象方法,完成該算法的子步驟。
代碼結(jié)構(gòu):
```
// 抽象類(lèi)
abstract class AbstractClass {
public final void templateMethod() {
// 算法骨架代碼
method1();
method2();
method3();
}
protected abstract void method1();
protected abstract void method2();
protected abstract void method3();
}
// 具體類(lèi)
class ConcreteClass extends AbstractClass {
@Override
protected void method1() {
// 實(shí)現(xiàn)相關(guān)的業(yè)務(wù)邏輯
}
@Override
protected void method2() {
// 實(shí)現(xiàn)相關(guān)的業(yè)務(wù)邏輯
}
@Override
protected void method3() {
// 實(shí)現(xiàn)相關(guān)的業(yè)務(wù)邏輯
}
}
// 示例代碼
AbstractClass obj = new ConcreteClass();
obj.templateMethod();
```