• 模板方法模式


    1.定义抽象类,

    2.定义抽象方法

    3.定义具体方法

    4.在具体方法里调用抽象方法

    5.子类继承抽象类并实现抽象方法

    6.不同的子类实现即可实现不同方法调用

    7.代码

    AbstractClass(抽象模板):

    package com.jxs.templateMethod;
    
    
    public abstract class AbstractClass {
    
        public abstract void primitiveOperation1();
    
        public abstract void primitiveOperation2();
    
        // 模板方法,给出了逻辑的骨架
        // 而逻辑的组成是一些相应的抽象操作,他们都推迟到子类实现
        public void templateMethod() {
    
            primitiveOperation1();
            primitiveOperation2();
            System.out.println("");
        }
    }

    ConcreteClassA:

    package com.jxs.templateMethod;
    
    
    public class ConcreteClassA extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
    
            System.out.println("具体类A方法1实现");
        }
    
        @Override
        public void primitiveOperation2() {
    
            System.out.println("具体类A方法2实现");
        }
    }

    ConcreteClassB:

    package com.jxs.templateMethod;
    
    
    public class ConcreteClassB extends AbstractClass {
    
        @Override
        public void primitiveOperation1() {
    
            System.out.println("具体类B方法1实现");
        }
    
        @Override
        public void primitiveOperation2() {
    
            System.out.println("具体类B方法2实现");
        }
    }

    客户端:

    package com.jxs.templateMethod;
    
    
    public class Client {
    
        public static void main(String[] args) {
    
            AbstractClass c;
    
            c = new ConcreteClassA();
            c.templateMethod();
    
            c = new ConcreteClassB();
            c.templateMethod();
        }
    }

    结果:

    具体类A方法1实现
    具体类A方法2实现
    
    具体类B方法1实现
    具体类B方法2实现
    
    
    Process finished with exit code 0
  • 相关阅读:
    Gym
    博客搬家
    UVA
    UVA
    UVA
    UVA
    UVA
    UVA1589——xiangqi
    SDUSToj第十一次作业源代码格式问题
    【成长之路】【python】python基础3
  • 原文地址:https://www.cnblogs.com/xyzxy/p/12751461.html
Copyright © 2020-2023  润新知