您的位置:首页 > 其它

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

2010-03-22 21:31 253 查看
模版方法模式:定义了一个算法/流程骨架,但是将一些步骤推迟到子类中去实现。

示例代码:

//模版
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();
}
}


 

特点:

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

模板方法的核心精神在于把已知的部分(不变化的部分)放在超类中被公用, 而把未知的部分(易变化,不确定的部分)留给子类各自去实现.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息