`
qingzi2534
  • 浏览: 258461 次
  • 性别: Icon_minigender_2
  • 来自: 烟台
社区版块
存档分类
最新评论

设计模式之模版方法Template Method Pattern

阅读更多

Template Method Pattern,父类指定处理大纲,子类规定具体内容的设计模式叫做模版方法模式。

下面的示例是反复输出5次同一个字符或字符串。

                                                                 表3-1 类一览表
名称 说明
AbstractDisplay 只是现方法display的抽象类
CharDisplay 实现方法open,print,close的类
StringDisplay 实现方法open,print,close的类
Main 测试类

AbstractDisplay 抽象类
  1. public abstract class AbstractDisplay {   
  2.   public abstract  void open();   
  3.   public abstract  void print();   
  4.   public abstract  void close();   
  5.   public final void display() {   
  6.      open();   
  7.      forint i=0;i<5;i++)   
  8.      {  print(); }   
  9.      close();   
  10.   }   
  11. }  
CharDispaly类
  1. public class CharDisplay extends AbstractDisplay {           
  2.   private char ch;           
  3.   public CharDisplay(char ch) {           
  4.      this.ch = ch;           
  5.    }           
  6.   public void open() {           
  7.     System.out.print("××");           
  8.   }           
  9.   public void print() {           
  10.    System.out.print(ch);           
  11.    }           
  12.   public void close() {           
  13.     System.out.print("××");           
  14.   }           
  15. }        
StringDispaly 类
  1. public class StringDisplay extends AbstractDisplay { //他也是AbstractDisplay的子类   
  2.   private String string;   
  3.   private int width;   
  4.   public StringDisplay(String string) {   
  5.     this.string = string;   
  6.     this.width = string.getBytes().length; }   
  7.   public void open() {   
  8.     printLine();  //此方法画线段   
  9.   }   
  10.   public void print() {   
  11.     System.out.print("|"+string+"|");   
  12.    }   
  13.   public void close() {   
  14.      printLine(); }   
  15.   private void printLine() {   
  16.      System.out.print("+");   
  17.      for(int i = 0 ;i < width ; i++) {   
  18.        System.out.print("--");   
  19.      }   
  20.   System.out.println("+");   
  21. }  }  
Main测试类
  1. public class Main  {   
  2.    public static void main(String[] args) {   
  3.      AbstractDisplay  d1 = new CharDisplay('H');   
  4.      AbstractDisplay  d2 = new StringDisplay("Hello,World!");   
  5.     d1.display();   
  6.     d2.display();   
  7.    }   
  8. }  
分享到:
评论
2 楼 qingzi2534 2007-01-17  
java.io.InputStream 类用到了这个模式。
可以看看源码,加深理解本模式。
1 楼 qingzi2534 2007-01-17  
输出的结果是:
××HHHHH××
+------------+
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
|Hello,world!|
+------------+

相关推荐

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...

    C++设计模式课件3_Template Method_模板方法.pdf

    模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 #### 模式背景...

    模版方法模式TemplatePattern

    模板方法模式(Template Pattern)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类重新定义或改变某些基本操作,但整体结构和顺序保持不变。在Java编程中,...

    TemplateMethod Pattern.unitypackage

    TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。

    Discovering Template Method Pattern in Google Android framework

    模板方法模式(Template Method Pattern)在Google Android框架中的应用是一个重要的设计模式实例,它允许开发者定义一个算法骨架,而将一些步骤延迟到子类中。这个模式的关键在于它定义了一个操作中的算法步骤,并...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    C#模板方法模式(Template Method Pattern)实例教程

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...

    Python设计模式之模板方法模式实例详解

    本文实例讲述了Python设计模式之模板方法模式。分享给大家供大家参考,具体如下: 模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的...

    Java设计模式之禅

    1. 模板方法模式(Template Method Pattern):在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。 2. 命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化...

    JAVA 23种设计模式(全).Design Pattern_Java模式

    包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of Responsibility)、命令模式(Command)、备忘录模式...

    11.设计模式-模板方法模式1

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在父类中定义算法的框架,然后由子类提供具体的实现。这种模式的核心是“模板方法”,它在父类中定义了一个操作的步骤顺序,并将某些步骤声明为...

    【原创】Open close principle sample, state pattern, template method pattern

    模板方法模式是行为设计模式的一种,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这有助于保持代码结构的一致性,同时允许子类定制...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下...模板方法模式(Template Method) 访问者模式(Visitor)

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式... 模板方法模式(Template Method Pattern)  访问者模式(Visitor Pattern)

    C#设计模式_设计模式_C#_

    模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. ...

    您的设计模式.pdf。

    模板方法模式(TEMPLATE METHOD PATTERN) 模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并将一些步骤延迟到子类中。模板方法模式可以帮助开发者编写更加灵活的代码,以提高系统的可维护性。例如,...

    java设计模式详解,java design pattern

    1. 模板方法模式(Template Method Pattern):在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。 2. 中介者模式...

Global site tag (gtag.js) - Google Analytics