Template Method模式——–将具体处理交给子类
Template意为“模板”,Template Method模式即为模板模式.
何为模板模式?我觉得可以理解为练习钢笔字用的临摹本,原先他已经有写好的字这就是模板,但是当你用不同颜色的笔去写字时,字自然是不同的颜色,这就是你的”具体处理“.
下面是代码的具体实现:
AbstractDisplay类
public abstract class AbstractDisplay {
public abstract void pen();//什么颜色的钢笔,由子类具体处理
public abstract void write();//写出什么颜色的字,由子类具体处理
public abstract void end();//落款,由子类具体处理
//该类中实现的display方法
public final void display(){
pen();
write();
end();
};
}
RedPen类
public class RedPen extends AbstractDisplay {
private String pen;
public RedPen(String pen) {
this.pen = pen;
}
@Override
public void pen() {
System.out.print("你用"+pen+"色的刚笔");
}
@Override
public void write() {
System.out.print("写了"+pen+"色的字...\t");
}
@Override
public void end() {
System.out.println("落款:第一支钢笔");
}
}
BlackPen类
public class BlackPen extends AbstractDisplay {
private String pen;
public BlackPen(String pen) {
this.pen = pen;
}
@Override
public void pen() {
System.out.print("你用"+pen+"色的刚笔");
}
@Override
public void write() {
System.out.print("写了"+pen+"色的字...\t");
}
@Override
public void end() {
System.out.println("落款:第二支钢笔");
}
}
测试
public class Main {
public static void main(String[] args) {
AbstractDisplay adRed = new RedPen("红");
AbstractDisplay adBlack = new BlackPen("黑");
adRed.display();
adBlack.display();
}
}