设计模式之模版方法模式

模版方法模式(Template method)

1.定义:定义一个操作中算法的股架,而将一些步骤延迟到子类中

例子: public void runBase() throws Throwable{

                   setUp();

                   try{

                         runTest();

                       }

                   finally{

                    tearDown();

                     }

             }

             protected void setUp() throws Exception {}

             protected void tearDown() throws Exception{}

注释:这两个方法没有被实现为抽象的方法,而是两个空的方法(钩子方法)。使用钩子方法时,只在有需要时在子类中重写。

3.适用情况:

                  1)一次性实现一个算法的不变部分,将可变的部分留给子类来实现

                  2)各子类中公共部分提取出来,并集中到一个公共的父类中避免代码重复

                  3)如果不希望子类扩展模版方法,只需把模版方法声明成final的。

猜你喜欢

转载自gaoyanlong.iteye.com/blog/1873264