模板模式是一种行为设计模式,它允许将算法的结构与实现分开,从而使得实现可以在不改变算法结构的情况下被重用。模板模式的核心思想是定义一个抽象基类,其中包含了算法的骨架,但是具体的步骤延迟到子类中去实现。这样一来,同一套算法的不同实现可以共享同一个基类代码,从而避免了代码的重复。简单来说,就是抽象类!
示例代码
abstract class Car {
// 这里定义了汽车行驶的算法框架,包括启动、加速、减速和停止
public void drive() {
start();
accelerate();
brake();
stop();
}
// 这些方法是算法的具体步骤,由子类去实现
protected abstract void start();
protected abstract void accelerate();
protected abstract void brake();
protected abstract void stop();
}
class ManualCar extends Car {
protected void start() {
System.out.println("手动挂挡启动");
}
protected void accelerate() {
System.out.println("手动加速");
}
protected void brake() {
System.out.println("手动刹车");
}
protected void stop() {
System.out.println("手动停车");
}
}
class AutomaticCar extends Car {
protected void start() {
System.out.println("自动启动");
}
protected void accelerate() {
System.out.println("自动加速");
}
protected void brake() {
System.out.println("自动刹车");
}
protected void stop() {
System.out.println("自动停车");
}
}
public class TemplatePatternExample {
public static void main(String[] args) {
Car manualCar = new ManualCar();
manualCar.drive();
Car automaticCar = new AutomaticCar();
automaticCar.drive();
}
}
Car
是一个抽象基类,其中包含了汽车行驶的算法框架。具体的步骤由子类ManualCar
和AutomaticCar
去实现。在 TemplatePatternExample
类中,我们分别创建了一个手动挡汽车和一个自动挡汽车,并分别调用了它们的drive()方法。
通过模板模式,我们可以复用相同的算法框架,但是根据需要可以有不同的实现方式。例如,在上述示例中,我们可以轻松地添加更多类型的汽车,而不需要修改基类的代码。同时,由于具体的实现被延迟到子类中去实现,因此我们也可以避免代码重复造成的问题。
标签:子类,void,System,protected,println,out,模板,延迟 From: https://www.cnblogs.com/li053/p/17469338.html