template method -类行为型模式

1.意图
  定义一个操作中的算法骨架,而将一些步骤延迟到子类。TemplateMethod使得子类
  可以不改变算法的结构重新定义算法的某些特定的。
  2.参与者
  AbstractClass -抽象类定义抽象的原语操作,具体子类将重定义它们实现一个算法的各个步骤
                -实现一个算法定义一个骨架。该算法骨架不仅调用原语操作,也调用定义在抽象
                                  类或者其它对象中的操作。
  ConcreteClass  -实现原语操作以实现算法中与特定子类相关的步骤。

3.结构

template method -类行为型模式_第1张图片

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();
	}
}

 

你可能感兴趣的:(设计模式)