模版方法模式

来源:互联网 发布:怎么操作办公软件 编辑:程序博客网 时间:2024/05/05 13:59

模版方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。

模版方法模式中的方法

模式方法中的方法可以分为两大类:模版方法和基本方法。

模版方法:

一个模版方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或一个总行为的方法。这个模版方法一般会在抽象类中定义,并由子类不加以修改地完全继承。

基本方法:

又可以分为三种:抽象方法、具体方法和钩子方法

抽象方法:一个抽象方法由抽象类声明,由具体子类实现。

具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。

钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。

 决定哪一个方法应作为具体方法是一个较为简单的任务,而决定哪一个方法作为抽象方法而不是钩子方法,或者应作为钩子方法而不是抽象方法,则常常不是一个容易的任务。

模版方法模式的设计理念是尽量减少必须由子类置换掉(override)的基本方法的数目。

命名规则:

钩子方法的名字应当以do开始,这是熟悉设计模式的Java程序设计师的标准做法。

模版方法模式在代码重构中的应用

没有很好重构的方法往往将很多的代码写在一个方法里,这样的方法应当拆分成一些较小的方法,拆分的策略可以使用模版方法模式。将大方法打破,建立取值方法,建立常量方法,如此反复直到所有基本方法都变成基本上一样的令人满意的细的粒度。当方法里有条件判断时,可以以多态性取代条件转移。

原创粉丝点击