设计模式之模板模式:Template模式

一. 模式概述

      摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式."

      更近一步可以这样来理解:"准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不同的实现."

 

二. 模式意图

      将一个类的基本部分抽取出来放到一个基类中,这样它就不必重复出现在几个派生类里.

 

三. 模式UML图

                           
四. 模式结构与参与者

     抽象摸板角色:

        1. 定义了一个或多个抽象操作,以便让子类实现.

        2. 定义并实现了一个摸板方法.

     具体摸板角色:

        1. 实现父类所定义的一个或多个抽象方法.

        2. 每一个抽象摸板角色都可以有任意多个具体摸板角色与之对应.

        3. 每一个具体摸板角色都可以给出这些抽象方法的不同实现.

Java代码   收藏代码
  1. public abstract class Template  
  2. {  
  3.     protected abstract void checkFinance();  
  4.      
  5.     public final void doTotal()  
  6. //模板方法  
  7.    {  
  8.         checkFinance();  
  9.         System.out.println("Company Finance has been check-out ");  
  10.     }  
  11. }  
  12.   
  13. public class FilialeTemplate extends Template  
  14. {  
  15.     protected void checkFinance()  
  16.     {  
  17.         System.out.println("Filiale render check report");  
  18.     }  
  19. }  
  20.   
  21. public class TestTemplate  
  22. {  
  23.     public static void main(String[] args)  
  24.     {  
  25.         Template template = new FilialeTemplate();  
  26.         template.doTotal();  
  27.     }  

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页