• 设计模式一模板方法模式


    概述

    定义一个操作中算法的骨架,而将这些步骤延迟到子类中,

    模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

    不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。

    抽象类(Abstract Class)
    负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。这些方法的定义如下。
    ① 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
    ② 基本方法:是整个算法中的一个步骤,包含以下几种类型。
    抽象方法:在抽象类中申明,由具体子类实现。
    具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
    钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
    具体子类(Concrete Class):
        实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的一个组成步骤。
     1 public class Template {
     2     public static void main(String[] args) {
     3         tem t = new T();
     4         t.temp();
     5     }
     6 }
     7 
     8 abstract class tem {
     9     //抽象方法和具体方法
    10     public abstract void a();
    11 
    12     public void b() {
    13         System.out.println("第一");
    14     }
    15 
    16     public void c() {
    17         System.out.println("第二");
    18     }
    19 
    20     public void d() {
    21         System.out.println("第三");
    22     }
    23 
    24     //模板方法
    25     public void temp() {
    26         a();
    27         b();
    28         c();
    29         d();
    30     }
    31 }
    32 
    33 class T extends tem {
    34     @Override
    35     public void a() {
    36         System.out.println("老大");
    37     }
    38 }
  • 相关阅读:
    SQL作业的操作全
    ISAPI Rewrite 实现简单url重写、二级域名重写
    wwf mvc学习
    如何扩大内需
    惊喜
    无限级分类查询
    杂记
    20130118SQL记录
    百度调价HttpWebRequest
    检查外链的方法
  • 原文地址:https://www.cnblogs.com/loveer/p/11286873.html
Copyright © 2020-2023  润新知