My模板设计模式

模板模式

目标:

  • 第一个设计模式:模板模式

步骤:

  • 第一个设计模式:模板模式

讲解:

我们现在使用抽象类设计一个模板模式的应用,

例如在小学的时候,我们经常写作文,通常都是有模板可以套用的。

假如我现在需要定义新司机和老司机类,新司机和老司机都有开车功能,开车的步骤都一样,只是驾驶时的姿势有点不同,

新司机:开门,点火,双手紧握方向盘,刹车,熄火

老司机:开门,点火,右手握方向盘左手抽烟,刹车,熄火

我们可以将固定流程写到父类中,不同的地方就定义成抽象方法,让不同的子类去重写,

代码如下:

// 司机开车的模板类
public abstract class Driver {
   public void go() {
       System.out.println("开门");
       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("老司机右手握方向盘左手抽烟...");
  }
}

编写测试类

public class Demo02 {
   public static void main(String[] args) {
       NewDriver nd = new NewDriver();
       nd.go();

       OldDriver od = new OldDriver();
       od.go();
  }
}

运行效果

小结:

  模板模式

    • 模板已经定义了通用架构(共性行为和属性)

    • 使用者只需要关心自己需要实现的功能即可(特殊行为和属性)

  • 主要运用父类和Abstract抽象方法来执行
posted @ 2020-08-28 13:23  骚哥  阅读(122)  评论(0编辑  收藏  举报