您的位置:首页 > 其它

设计模式读书笔记之模版方法模式(Template)

2016-04-25 09:20 387 查看
模版方法模式:定义了一个算法/流程骨架,但是将一些步骤推迟到子类中去实现。

示例代码:

[java] view
plain copy

//模版

package designpattern.template;

public abstract class Template {

private void step1(){

System.out.println("This is the first step.");

}

protected abstract void step2();

private void step3(){

System.out.println("This is the third step.");

}

public void process(){

step1();

step2();

step3();

}

}

//实现类

package designpattern.template;

public class Concrete extends Template{

protected void step2() {

System.out.println("This is the second step, it's implemented in sub class");

}

}

//上下文

package designpattern.template;

public class Context {

private Template t;

public Context(Template t){

this.t = t;

}

public void process(){

t.process();

}

//test case

public static void main(String[] args) {

Context c = new Context(new Concrete());

c.process();

}

}

特点:

把公共的代码或不变的行为放在超类/模版中, 以隔离变化和不变,使不便的部分可复用。

模板方法的核心精神在于把已知的部分(不变化的部分)放在超类中被公用, 而把未知的部分(易变化,不确定的部分)留给子类各自去实现.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: