设计模式 模板方法模式 Template Method
2017-06-02 10:46
447 查看
模板方法模式,就是先定义算法骨架(骨架设置为final方法,不能被改变),而将一下不走延迟到子类中。
也就是先定义模板,模板的具体内容由子类去实现,跟平时写论文等相似。
1. 模板方法类 AbstractDisplay
2.子类实现CharDisplay
3.子类实现StringDisplay
4.主函数Main
也就是先定义模板,模板的具体内容由子类去实现,跟平时写论文等相似。
1. 模板方法类 AbstractDisplay
public abstract class AbstractDisplay { public abstract void open(); public abstract void print(); public abstract void close(); public final void display() { open(); for (int i = 0; i < 5; i++) { print(); } close(); } }
2.子类实现CharDisplay
public class CharDisplay extends AbstractDisplay { private char ch; public CharDisplay(char ch) { this.ch = ch; } public void open() { System.out.print("<<"); } public void print() { System.out.print(ch); } public void close() { System.out.println(">>"); } }
3.子类实现StringDisplay
public class StringDisplay extends AbstractDisplay { private String string; private int width; public StringDisplay(String string) { this.string = string; this.width = string.getBytes().length; } public void open() { printLine(); } public void print() { System.out.println("|" + string + "|"); } public void close() { printLine(); } private void printLine() { System.out.print("+"); for (int i = 0; i < width; i++) { System.out.print("-"); } System.out.println("+"); } }
4.主函数Main
public class Main { public static void main(String[] args) { AbstractDisplay d1 = new CharDisplay('H'); AbstractDisplay d2 = new StringDisplay("Hello, world."); d1.display(); d2.display(); } }
相关文章推荐
- 设计模式之模板方法模式(Template Method)
- 设计模式----Template Method(模板方法)
- 23种设计模式之模板方法(Template Method)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式学习笔记(十六)——Template Method模板方法模式
- 设计模式系列之Template Method(模板方法模式)
- java设计模式---Template Method模板方法---实际处理交给子类
- Java设计模式—模板方法(Template Method)
- 设计模式学习笔记(十六)——Template Method模板方法模式
- 设计模式----Template Method(模板方法)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 设计模式-模板方法模式(Template Method Pattern)
- 设计模式(七)[模板方法(Template Method)模式]
- 设计模式:模板方法模式(Template Method)
- 设计模式 - Template Method模式(模板方法模式)
- 深入浅出设计模式-009:模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 极速理解设计模式系列:20.模板方法模式(Template Method Pattern)
- 极速理解设计模式系列:20.模板方法模式(Template Method Pattern)
- 设计模式学习-Template Method(模板方法)