模板设计模式

     在程序开发中你可能常常遇到这种状况,某个要实现的算法分为多个步骤,有些步骤是固定不变的,有些步骤是不固定的,为了提升代码的可扩展性和可维护性,模板设计模式在这种场景下就派上用场了。java

    在模板设计模式中,一个算法能够分为多个步骤,每一个步骤对应一个方法称为基本方法,步骤的执行顺序是在一个模板方法中定义好的,有些基本方法是固定不变的,有些基本方法是不固定的。在模板设计模式中,模板方法和固定不变的基本方法会在父类中实现,而不固定的基本方法在父类中是抽象方法,其实现被延迟到子类中完成。算法

如上图所示,在抽象类AbstractClass中Operation_4()方法是固定的基本方法,其实如今父类中。而Operation_二、Operation_3()、Operation_5()是不固定的基本方法,因此在父类中是抽象方法,须要子类去实现。设计模式

/***********************************************************************
 * Module:  AbstractClass.java
 * Author:  Administrator
 * Purpose: Defines the Class AbstractClass
 ***********************************************************************/

import java.util.*;


public abstract class AbstractClass {
   
   public void template() {
      // TODO: implement
   }
   
   
   public abstract void operation();
   
   public abstract void operation3();
   
   public void operation4() {
      // TODO: implement
   }
   
   
   public abstract void operation5();

}

 

/***********************************************************************
 * Module:  ConcreteClass1.java
 * Author:  Administrator
 * Purpose: Defines the Class ConcreteClass1
 ***********************************************************************/

import java.util.*;


public class ConcreteClass1 extends AbstractClass {
   
   public void operation() {
      // TODO: implement
   }
   
   
   public void operation3() {
      // TODO: implement
   }
   
   
   public void operation5() {
      // TODO: implement
   }

}

 

/***********************************************************************
 * Module:  ConcerteClass2.java
 * Author:  Administrator
 * Purpose: Defines the Class ConcerteClass2
 ***********************************************************************/

import java.util.*;


public class ConcerteClass2 extends AbstractClass {
   
   public void operation() {
      // TODO: implement
   }
   
   
   public void operation3() {
      // TODO: implement
   }
   
   
   public void operation5() {
      // TODO: implement
   }

}
相关文章
相关标签/搜索