zoukankan      html  css  js  c++  java
  • 设计模式-模板方法

    模板方法

    定义:定义一个过程中的算法骨架,而将算法的一些步骤延迟到子类中。

    这么做是为了将不变的部分封装到父类中实现,而将可变部分的算法由子类继承实现,便于扩展。

    模板结构:

    • 抽象模板
      • 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
      • 基本方法:
        • 抽象方法:在抽象类中声明,由具体子类实现。
        • 具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
        • 钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
    • 具体子类
      具体实现类,实现抽象类中定义的抽象方法和钩子方法。

    代码示例:

    public abstract class AbstractClass {
    
        public void templateMethod(){
            specificMethd();
            abstractMethod1();
            abstractMethod2();
        }
    
    
        void specificMethd(){
            System.out.println("抽象类实现的方法");
        }
    
        abstract void abstractMethod1();
        abstract void abstractMethod2();
    
    }
    
    public class ConcreteClass extends AbstractClass {
        @Override
        void abstractMethod1() {
            System.out.println("子类实现的方法1");
        }
    
        @Override
        void abstractMethod2() {
            System.out.println("子类实现的方法2");
        }
    }
    

    测试代码:

     public static void main(String[] args) throws InterruptedException, CloneNotSupportedException {
            AbstractClass abstractClass=new ConcreteClass();
            abstractClass.templateMethod();
        }
    

    返回目录

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    saltstack实战
    ubuntu16配置mysql5.7主从同步
    推荐书单
    SpringMVC : 乐鲜电子商城
    Idea 使用指南
    SpringBoot : 人人托福系统网站
    Android : SQLite 版学生系统
    Android : 相机及本地储存
    Android : ListView 学生管理
    Android : SeekBar 实现图片旋转缩放
  • 原文地址:https://www.cnblogs.com/javammc/p/14967890.html
Copyright © 2011-2022 走看看