模版方法:通过实现类扩展的方法来完成业务逻辑。

1. 创建实例的模板

  1. package designpattern;  
  2.   
  3. public abstract class GenericWithCreate<T> {  
  4.       
  5.     final T element;  
  6.     GenericWithCreate() {  
  7.         element = create();  
  8.     }  
  9.       
  10.     abstract T create();  
  11. }  
  12.   
  13. class X {}  

2. X类创建的具体实现

  1. package designpattern;  
  2.   
  3. public class Creator extends GenericWithCreate<X> {  
  4.   
  5.     @Override  
  6.     X create() {  
  7.         return new X();  
  8.     }  
  9.       
  10.     void f() {  
  11.         System.out.println(element.getClass().getName());  
  12.     }  
  13. }  

3. 测试代码

  1. package designpattern;  
  2.   
  3. public class CreatorGeneric {  
  4.       
  5.     public static void main(String[] args) {  
  6.         Creator c = new Creator();  
  7.         c.f();  
  8.     }  
  9.       
  10. }  
  1. //output  
  2. designpattern.X