您的位置:首页 > 其它

设计模式之模板方法模式

2016-04-06 23:22 197 查看
定义: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

模式中的角色

抽象类:实现了模板方法,定义了算法的骨架。

具体类:实现抽象类中的抽象方法,已完成完整的算法。

通用代码实现:

抽象类:

public abstract class AbstractTemplate {
/**
* 模板方法
*/
public void templateMethod(){
//调用基本方法
abstractMethod();
hookMethod();
concreteMethod();
}
/**
* 基本方法的声明(由子类实现)
*/
protected abstract void abstractMethod();
/**
* 基本方法(空方法)
*/
protected void hookMethod(){}
/**
* 基本方法(已经实现)
*/
private final void concreteMethod(){
//业务相关的代码
}
}


具体实现子类:


public class ConcreteTemplate extends AbstractTemplate{
//基本方法的实现
@Override
public void abstractMethod() {
//业务相关的代码
}
//重写父类的方法
@Override
public void hookMethod() {
//业务相关的代码
}
}


1.模板模式定义了算法的步骤,把这些步骤的实现延迟到子类

2.模板模式为我们提供了一个代码复用的技巧

3.模板抽象类中可以定义具体方法、抽象方法和钩子方法

4.为了防止子类改变模板中的算法,可以将模板方法声明为final

5.钩子是一种方法,它在抽象类中不做事,或只做默认的事,子类可以选择要不要实现它
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: