template method -類行爲型模式

1.意圖
  定義一個操作中的算法骨架,而將一些步驟延遲到子類。TemplateMethod使得子類
  可以不改變算法的結構重新定義算法的某些特定的。
  2.參與者
  AbstractClass -抽象類定義抽象的原語操作,具體子類將重定義它們實現一個算法的各個步驟
                -實現一個算法定義一個骨架。該算法骨架不僅調用原語操作,也調用定義在抽象
                                  類或者其它對象中的操作。
  ConcreteClass  -實現原語操作以實現算法中與特定子類相關的步驟。

3.結構

4.代碼

public class AbstractClass {
   public void Method(){
	   A();
	   B();
	   C();
	   D();
   }
   
   public void A(){
	   System.out.println("拿杯子");
   }
   public void B(){
	   System.out.println("倒入開水");
   }
   public void C(){
	   
   }
   public void D(){
	   System.out.println("攪拌");
   }
}


public class ConcreteClass extends AbstractClass {
	public void C(){
		   System.out.println("加咖啡");
	   }
}

public class ConcreteClass2 extends AbstractClass {
	public void C(){
		   System.out.println("加奶粉");
	   }
}

 public static void main(String[] args) {
		AbstractClass a = new ConcreteClass();
		a.Method();
		System.out.println("*********************");
		AbstractClass b = new ConcreteClass2();
		b.Method();
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章