模板设计模式

来源:互联网 发布:18级毕业生 程序员 编辑:程序博客网 时间:2024/06/13 21:57

模板方法设计模式



模板方法设计模式是类的行为模式。

用抽象类(父类)作为多个子类的通用模板,然后子类可以抽象类的基础上进行扩展、改造。具体就是在抽象类内定义一些抽象方法,然后让不同的子类以不同的方式去实现这些抽象方法。


解决的问题:当功能内部一部分实现是确定的,一部分实现是不确定的。这时就可以把不确定的部分暴露出去,让子类去实现。

  abstract class gettime{    public final void gettime(){   //此功能如果不需要复写,可加final限定      long start = system.currenttimemillis();      code();   //不确定的功能部分,提取出来,通过抽象方法实现      long end = system.currenttimemillis();      system.out.println("毫秒是:"+(end—start));    }    public abstract void code();   //抽象不确定的功能,让子类复写实现  }  class subdemo extends gettime{    public void code(){   //子类复写功能方法      for(int y=0; y<1000; y++){        system.out.println("y");      }    }  }


优点
1、简洁性,去除了子类中的重复代码。
2、子类实现算法的某些细节,有助于算法的扩展。
缺点
每个不同的实现都需要定义一个子类,这会导致类的个数的增加,使设计更加抽象。
适用场景
在某些类的算法中,用了相同的方法,造成代码的重复。
控制子类扩展,子类必须遵守算法规则。


0 0
原创粉丝点击