zoukankan      html  css  js  c++  java
  • 20模板方法模式TemplateMethod

    一、什么是模板方法模式

      Template Method模式也叫模板方法模式,是 行为模式之一,它把具有特定步骤算法中的某些 必要的处理委让给抽象方法,通过子类继承对抽 象方法的不同实现改变整个算法的行为。

    二、模板方法模式的应用场景

      Template Method模式一般应用在具有以下条件 的应用中:

        - 具有统一的操作步骤或操作过程

        - 具有不同的操作细节

        - 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同

    三、模板方法模式的结构

    四、模板方法模式的角色和职责

      AbstractClass: 抽象类的父类

      ConcreteClass: 具体的实现子类

      templateMethod(): 模板方法

      method1()与method2(): 具体步骤方法

    做车

     1 /*
     2  * 组装车
     3  */
     4 public abstract class MakeCar {
     5     //组装车头
     6     public abstract void makeHead();
     7     
     8     //组装车身
     9     public abstract void makeBody();
    10     
    11     //组装车尾
    12     public abstract void makeTail();
    13     
    14     public void make() {
    15         this.makeHead();
    16         this.makeBody();
    17         this.makeTail();
    18     }
    19 }

    做公交车

     1 //做公交车
     2 public class MakeBus extends MakeCar {
     3 
     4     public void makeBody() {
     5         System.out.println("bus:组装车身");
     6     }
     7 
     8     public void makeHead() {
     9         System.out.println("bus:组装车头");
    10     }
    11 
    12     public void makeTail() {
    13         System.out.println("bus:组装车尾");
    14     }
    15 }

    组装Jeep车

     1 //组装Jeep车
     2 public class MakeJeep extends MakeCar {
     3 
     4     public void makeBody() {
     5         System.out.println("jeep:组装车身");
     6     }
     7 
     8     public void makeHead() {
     9         System.out.println("jeep:组装车头");
    10     }
    11 
    12     public void makeTail() {
    13         System.out.println("jeep:组装车尾");
    14     }
    15 }

    做卡车

     1 //做卡车
     2 public class MakeKa extends MakeCar {
     3 
     4     public void makeBody() {
     5         System.out.println("ka:组装车身");
     6     }
     7 
     8     public void makeHead() {
     9         System.out.println("ka:组装车头");
    10     }
    11 
    12     public void makeTail() {
    13         System.out.println("ka:组装车尾");
    14     }
    15 }

    测试

     1 public class MainClass {
     2     public static void main(String[] args) {
     3         MakeCar bus = new MakeBus();
     4 //        bus.makeHead();
     5 //        bus.makeBody();
     6 //        bus.makeTail();
     7         bus.make();
     8         
     9         System.out.println("-------------------");
    10         
    11         MakeCar jeep = new MakeJeep();
    12 //        jeep.makeHead();
    13 //        jeep.makeBody();
    14 //        jeep.makeTail();
    15         jeep.make();
    16         
    17         System.out.println("-------------------");
    18         
    19         MakeCar ka = new MakeKa();
    20         ka.make();
    21     }
    22 }
  • 相关阅读:
    使用Angular2建立项目
    你不知道的JavaScript-0
    项目从0到1
    登录页跳转时保存用户信息-遇坑记
    robotframework-ride快捷方式打不开
    win10 python3.8 wxpython.whl 安装步骤
    QPS
    xmind 文件 打开后会在当前目录生成 configuration,p2和workspace目录,artifacts.xml文件 解决
    JMeter进行压力测试时查看服务器的资源使用
    JMeter和JMeterPlugin的下载安装
  • 原文地址:https://www.cnblogs.com/justdoitba/p/9034799.html
Copyright © 2011-2022 走看看