父类定义了程序的模版,子类实现抽象方法并决定具体的处理,这种模式就是模版模式。
类图:
代码:
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次,然后输出结束字符串。