随笔分类
模板方法模式
Tempate Method
行为型之一
把具有特定步骤的算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为
只需要记住一点,模板方法中规定好了这一过程的步骤执行的顺序
public abstract class MakeCar {
abstract void makeHead();
abstract void makeBody();
abstract void makeTail();
void TemplateMethod(){
this.makeHead();
this.makeBody();
this.makeTail();
}
}
public class MakeBus extends MakeCar{
@Override
void makeHead() {
System.out.println("make bus head");
}
@Override
void makeBody() {
System.out.println("make bus body");
}
@Override
void makeTail() {
System.out.println("make bus tail");
}
}
public class MakeJeep extends MakeCar{
@Override
void makeHead() {
System.out.println("make jeep head");
}
@Override
void makeBody() {
System.out.println("make jeep body");
}
@Override
void makeTail() {
System.out.println("make jeep tail");
}
}
/**
* make bus head
* make bus body
* make bus tail
* make jeep head
* make jeep body
* make jeep tail
*/
public class Client {
public static void main(String[] args) {
MakeCar bus = new MakeBus();
bus.TemplateMethod();
MakeCar jeep = new MakeJeep();
jeep.TemplateMethod();
}
}
应用场景
- 具有统一的操作步骤或操作过程(顺序执行)
- 具有不同的操作细节
- 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同