父类定义了程序的模版,子类实现抽象方法并决定具体的处理,这种模式就是模版模式。
类图:

代码:
1 | public abstract class AbstractDisplay { // 抽象类AbstractDisplay |
1 | public class CharDisplay extends AbstractDisplay { // CharDisplay是AbstractDisplay的子类 |
1 | public class StringDisplay extends AbstractDisplay { // StringDisplay也是AbstractDisplay的子类 |
1 | public class Main { |
这里AbstractDisplay是抽象类,其中只有display()是定义好的,作为模版。CharDisplay和StringDisplay类实现AbstractDisplay,定义了各自的open()、print()、close()方法。Main函数输出如下:

可以看到,CharDisplay和StringDisplay的输出不同,但是模式是固定的,都是输出一个起始字符串,然后重复给定字符串5次,然后输出结束字符串。