模板模式

Posted by 石玉军 on 2018-07-26

模板方法:在一个抽象类中定义一部分的实现,其余的定义抽象方法迫使子类实现

相信看了上方的定义以后大家已经理解了模板模式,我们来看一下类图

1

抽象类定义了4个方法,其中operation是私有的,在这个方法里调用了其他三个方法,而方法3是自己实现的。方法1和2是强迫子类实现的。

ClassImpl1,ClassImpl2都继承了抽象类,并分别对方法1和2进行了不同的实现

我们来看代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public  abstract class AbstractClass {
public abstract void operation1();
public abstract void operation2();
public void operation3(){
System.out.println("do something....");
}
public void operation(){
operation1();
operation2();
operation3();
}
}

public class ClassImpl1 extends AbstractClass {
@Override
public void operation1() {
System.out.println("do something....");
}
@Override
public void operation2() {
System.out.println("do something....");
}
}

public class ClassImpl2 extends AbstractClass {
@Override
public void operation1() {
System.out.println("do something....");
}
@Override
public void operation2() {
System.out.println("do something....");
}
}