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();
        }
    }
  • 相关阅读:
    Java-循环语句和条件语句
    Java-变量函数 上
    python
    python
    python
    Xpath
    python + selenium
    python + selenium
    python + selenium
    Web
  • 原文地址:https://www.cnblogs.com/zheaven/p/10168941.html
Copyright © 2011-2022 走看看