0%

设计模式-模板模式

将各个子类中的共有的实现方法放在父类实现。

模板模式

解决了什么:代码复用。

解决方法: 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中。

1
例子:养动物,养乌龟和养鱼都需要水,但喂的食物不同

Implementation

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
abstract class RaiseAnimal {
void water(){
System.out.println("水");
}
abstract void food();
}

class RaiseTortoise extends RaiseAnimal {
@Override
void food(){
System.out.println("龟粮");
}
}

class RaiseFish extends RaiseAnimal {
@Override
void food(){
System.out.println("鱼粮");
}
}

public class Template {
public static void main(String[] args) {
RaiseAnimal raiseAnimal1 = new RaiseTortoise();
raiseAnimal1.water();
raiseAnimal1.food();

RaiseAnimal raiseAnimal2 = new RaiseFish();
raiseAnimal2.water();
raiseAnimal2.food();
}
}

结果:

水
龟粮
水
鱼粮