设计模式: 设计模式就是解决一些问题时的固定思路,也就是代码设计思路经验的总结。
模板思想:
模板是通用的东西,抽象类体现的是模板思想。
抽象类中可以是具体实现的方法(通用模板),也可以有抽象方法(填充模板)。
模板中不能决定的行为定义成抽象方法,让需要使用模板的类(子类)负责重写抽象方法实现。
模板中能决定的行为就定义成有方法体的方法,让需要使用模板的类(子类)直接继承调用即可。
案例:
需求:
- 按照下述要求,使用代码实现 定义新、老司机类,新、老司机类都有开车功能,开车的步骤一样,但驾驶时的姿势不同
- 新司机:开门,点火,双手紧握方向盘,刹车,熄火
- 老司机:开门,点火,右手握方向盘左手抽烟,刹车,熄火
代码示例:
- 模板类
package com;
/**
* @Author: Mr.Xu
* @description: 模板
* @Date: 2021/10/8 17:38
*/
// 抽象父类: 体现的就是模板设计思想
public abstract class Driver {
// 开车的方法: 通用方法
public void driveCar(){
System.out.println("开门...");
System.out.println("点火...");
// 开车的姿势
ziShi();
System.out.println("刹车...");
System.out.println("熄火...");
}
// 姿势的方法: 填充方法
public abstract void ziShi();
}
public class NewDriver extends Driver {
@Override
public void ziShi() {
System.out.println("双手紧握方向盘...");
}
}
public class OldDriver extends Driver {
@Override
public void ziShi() {
System.out.println("右手握方向盘左手抽烟...");
}
}
- 测试类
package com;
/**
* @Author: Mr.Xu
* @description: 测试类
* @Date: 2021/10/8 17:43
*/
public class Test {
public static void main(String[] args) {
/*
需求:按照下述要求,使用代码实现
定义新、老司机类,新、老司机类都有开车功能,开车的步骤一样,但驾驶时的姿
势不同
新司机:开门,点火,双手紧握方向盘,刹车,熄火
老司机:开门,点火,右手握方向盘左手抽烟,刹车,熄火
*/
// 创建新司机对象
NewDriver d1 = new NewDriver();
// 创建老司机对象
OldDriver d2 = new OldDriver();
// 开车
d1.driveCar();
System.out.println("========");
d2.driveCar();
}
}
小白一枚,喜欢编程,以上内容纯手打,如有错误,请及时指正,谢谢!!!
欢迎下次再来ヾ(≧▽≦*)o
求三连(❁´◡`❁)