zoukankan      html  css  js  c++  java
  • 第十六讲、模板方法模式

    1.定义

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

    2.模板方法的应用场景

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

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

    3.模板方法模式的角色和职责

    • AbstractClass--抽象类的父类
    • ConcreteClass--具体的实现类
    • templateMethod()--模板方法
    • method1()和method2()--具体步骤方法

    4.代码演示

    package test.com.templateMethod;
    /*
     * Template Method--抽象类
     */
    public abstract class MakeCar {
        //组装车头
        public abstract void makehead();
        
        //组装车身
        public abstract void makebody();
        
        //组装车尾
        public abstract void maketail();
        
        //模板方法
        public void make() {
            this.makehead();
            this.makebody();
            this.maketail();
        }
    }
    package test.com.templateMethod;
    /*
     * ConcreteClass
     */
    public class MakeBuss extends MakeCar {
    
        @Override
        public void makehead() {
            System.out.println("buss:组装车头");
        }
    
        @Override
        public void makebody() {
            System.out.println("buss:组装车身");
        }
    
        @Override
        public void maketail() {
            System.out.println("buss:组装车尾");
        }
    
    }
    package test.com.templateMethod;
    /*
     * ConcreteClass
     */
    public class MakeJeep extends MakeCar {
    
        @Override
        public void makehead() {
            System.out.println("jeep:组装车头");
        }
    
        @Override
        public void makebody() {
            System.out.println("jeep:组装车身");
        }
    
        @Override
        public void maketail() {
            System.out.println("jeep:组装车尾");
        }
    
    }
    package test.com.templateMethod;
    /*
     * 测试类
     */
    public class MainClass {
        public static void main(String[] args) {
            MakeCar makeCar = new MakeBuss();
            makeCar.make();
            System.out.println("--------------------");
            
            MakeCar makeCar2 = new MakeJeep();
            makeCar2.make();
        }
    }
  • 相关阅读:
    delphi7调用webservice Java 传入参数为空
    delphi客户端调服务器端的java webservice如何在参数中传对象? 转
    DELPHI7如何调用带参数的JAVA WebService
    Delphi调用java开发的WebService,传入参数出错
    cxgrid按条件计算合计值 TcxTreeList计算合计值
    收款凭证
    delphi TCXTreelist 通过代码控制行的可编辑性
    win7 共享
    单到冲回的暂估方式,暂估入库的操作流程是怎样的?
    js常用函数和常用技巧
  • 原文地址:https://www.cnblogs.com/zheaven/p/10168941.html
Copyright © 2011-2022 走看看