模板方法設計模式的相關總結


在學習了模板方法設計模式感覺有必要去寫一個總結。於是就有了這篇,可能知識點比瑣碎比較少,但是重在

積累。


那麼什麼時候使用模板方法設計模式呢?

在定義功能時,功能的一部分是確定的,但是有一部分是不確定,而確定的部分在使用不確定的部分。那麼這時

將不確定的部分暴露出去,由該類的子類去完成。此時就要用到模板方法設計模式。


/**
 * 需求:獲取一段程序的運行時間。
 * @author 淼淇
 *
 */

abstract class GetTime
{
	public final void getTime()
	{
		long start = System.currentTimeMillis();
		runcode();
		long end = System.currentTimeMillis();
		System.out.println("程序運行時間爲"+(end-start)+"毫秒");
	}
	public abstract void runcode();
}
class ForDemo extends GetTime//子類繼承父類
{
	public void runcode()//複寫父類中的方法
	{
		for(int x=0; x<4000; x++)
		{
			System.out.println(x);
		}
	}
}
public class Test015 
{

	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		ForDemo fd = new ForDemo();//創建一個子類對象
		fd.getTime();//子類調用getTime()方法
	}

}


在上述例子中,獲取程序運行時間這個方法是確定的,但是程序運行的代碼是不確定的,此時我們就用到了模板

方法設計模式,把要運行的代碼作爲一個抽象類暴露出去,通過讓子類去繼承父類,並且把抽象方法複寫來完成程序

的運行時間的測算。(編寫期間子類我少寫了一個public,結果提示權限不夠無法複寫,以後一定要注意。默認權限 

public權限)


本來想把模板方法設計模式跟接口寫到一起的,但是發現接口的內容可能比較多,寫的太長不適合複習和總結,

所以只好先寫一篇比較短小的模板方法設計模式,之後更新接口的相關知識。通過對這個模式的學習和理解,在遇到

類似的需求的時候應對就可以稍微的輕鬆一些。現在可能我的認識還不夠深,學到的都是寫淺顯的方法,但是學到這

個設計思想,纔是我的目的。努力,加油!~


發佈了29 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章