• 模板方法模式


    定义:一个模板方法用一些抽象的操作定义一个算法,而子类将重定义这些操作以提供具体行为;

    意图:定义了一个在操作中的一个算法框架,把一些步骤推迟到子类中去实现。模板方法模式让子类不需要改变算法结构而重定义特定的算法步骤;

    比如

    Work(){

    ①   准备

    ②   实施

    ③   结束

    }

    可以将第二步实施声明为抽象方法,因为每个人实施的过程不同

     1 public class TemplateDemo{
     2     public static void main(String []atgs){
     3         Teacher t1=new DBTeacher();
     4         t1.work();
     5         System.out.println();
     6         Teacher t2=new CTeacher();
     7         t2.work();
     8     }
     9 }
    10 
    11 abstract class Teacher{
    12     //老师工作的方法(它是一个流程)
    13     public void prepared(){
    14         System.out.println("准备好白板笔");
    15         System.out.println("打开投影仪");
    16     }
    17     
    18     public void end(){
    19         System.out.println("关闭投影仪");
    20         System.out.println("锁门");
    21     }
    22     //抽象方法由其子类来实现
    23     public abstract void teaching();
    24     //模板方法
    25     public void work(){
    26         //1、授课前准备
    27         prepared();
    28         //2、进行授课
    29         teaching();
    30         //3、授课结束
    31         end();
    32     }
    33 }
    34 
    35 class DBTeacher extends Teacher{
    36     //对抽象父类的抽象方法的实现
    37     public void teaching(){
    38         System.out.println("打开Oracle");
    39         System.out.println("书写pl-sql指令");
    40         System.out.println("优化ql指令");
    41     }
    42 }
    43 
    44 class CTeacher extends Teacher{
    45     //对抽象父类的抽象方法的实现
    46     public void teaching(){
    47         System.out.println("打开VM");
    48         System.out.println("书写C指令");
    49         System.out.println("调试C程序");
    50     }
    51 }
  • 相关阅读:
    使用c#读取/解析二维码
    MVVM中的RelayCommand与AsyncCommand
    MVVM模式下的OpenFileDialog
    集成Source Monitor至VS中
    [转]异步command的实现
    使用Messenger实现MVVM的对话框弹出
    使用NPOI访问、控制Excel
    win11更新
    Codeforces Round #749 总结
    Codeforces Round #697 (Div. 3)
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5293639.html
Copyright © 2020-2023  润新知