1. 程式人生 > >設計模式(三):Template Method模式(模板功能模式)

設計模式(三):Template Method模式(模板功能模式)

Template Method模式(模板功能模式)

模板功能模式

在父類中定義處理流程的框架,在子類中實現具體處理的模式。
模板方法:提供抽象方法,供子類實現。提供的具體方法,作為通用方法。父類不知道子類如何實現抽象方法,只知道怎麼呼叫。
AbstractDisplay.java

public abstract class AbstractDisplay {

	public abstract void open();
	
	public abstract void print();
	
	public abstract
void close(); // 方法中呼叫5次print方法 public final void display() { open(); for (int i = 0; i < 5; i++ ) { print(); } close(); } }

第一個子類:
CharDisplay .java

public class CharDisplay extends AbstractDisplay {
	
	private char ch ;
	
	public CharDisplay(char ch) {
		this.ch = ch;
	}

	@Override
public void open() { System.out.print("<<"); } @Override public void print() { System.out.print(ch); } @Override public void close() { System.out.println(">>"); } }

第二個子類:
StringDisplay.java

public class StringDisplay extends AbstractDisplay {
	
	private String str;
private int width; public StringDisplay(String str) { this.str = str; this.width = str.length(); } @Override public void open() { printLine(); } @Override public void print() { System.out.println("|" + str + "|"); } @Override public void close() { printLine(); } private void printLine() { System.out.print("+"); for (int i = 0; i < width; i++) { System.out.print("-"); } System.out.println("+"); } }