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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:12   1636   0

一. 模式概述

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

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

二. 模式意图

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

三. 模式UML图


四. 模式结构与参与者

抽象摸板角色:

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

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

具体摸板角色:

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

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

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

Java代码 收藏代码
  1. public abstract class Template
  2. {
  3. protected abstract void checkFinance();
  4. public final void doTotal()
  5. //模板方法
  6. {
  7. checkFinance();
  8. System.out.println("Company Finance has been check-out ");
  9. }
  10. }
  11. public class FilialeTemplate extends Template
  12. {
  13. protected void checkFinance()
  14. {
  15. System.out.println("Filiale render check report");
  16. }
  17. }
  18. public class TestTemplate
  19. {
  20. public static void main(String[] args)
  21. {
  22. Template template = new FilialeTemplate();
  23. template.doTotal();
  24. }
  25. }
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP