• 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 }
  • 相关阅读:
    雷林鹏分享:EJB回调
    雷林鹏分享:EJB注解
    雷林鹏分享:EJB持久性
    雷林鹏分享:EJB有状态会话Bean
    雷林鹏分享:EJB无状态Bean
    雷林鹏分享:EJB创建应用
    雷林鹏分享:EJB概述
    雷林鹏分享:EJB教程
    Java集合框架
    Java集合源码剖析——ArrayList源码剖析
  • 原文地址:https://www.cnblogs.com/justdoitba/p/9034799.html
Copyright © 2020-2023  润新知