1. 程式人生 > >java 模板方法設計模式(TemplateMethod)

java 模板方法設計模式(TemplateMethod)

java 模板方法設計模式(TemplateMethod)

1.模板方法設計模式(TemplateMethod)

  1. 抽象類體現的就是一種模板模式的設計,抽象類作為多個子類的通用模板,子類在抽象類的基礎上進行擴充套件、改造,但子類總體上會保留抽象類的行為方式。

  2. TemplateMethod使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。

  3. 解決的問題:
    A. 當功能內部一部分實現是確定,一部分實現是不確定的。這時可以把不確定的部分暴露出去,讓子類去實現。
    B. 編寫一個抽象父類,父類提供了多個子類的通用方法,並把一個或多個方法留給其子類實現,就是一種模板模式。
    C. 控制子類擴充套件。

2.模板方法的實現

  1. 參與者:
    A. 抽象類(多個子類的模板)
    B. 繼承抽象類的子類
  2. java計算素數的demo
//模板方法的設計模式
public class TamplateMathod {
	public static void main(String[] args) {
		new Subtemplate().spendTime();
	}
}
abstract class Tamplate{
	public abstract void code();
	
	public void spendTime() {
		long start = System.currentTimeMillis();
		this.code();
		long end = System.currentTimeMillis();
		System.out.println("花費時間是"+(end - start));
	}
}
class Subtemplate extends Tamplate{

	public void code() {
		boolean flag = false;
		for (int i = 0; i <=  10000 ; i++) {
			for (int j = 2; j < Math.sqrt(i); j++) {
				if (i%j == 0) {
					flag= true;
					break;
				}
			}
			if(!flag) {
				System.out.println(i);
				
			}			
			flag = false;
		}
		
	}
}