package design;
/**
* 模板模式:基本方法在模板类中生成,具体方法类在子类中生成
* 与策略类的区别:策略类实现顶级类为接口,子类实现接口,模板为实现顶级类为抽象类,具体方法为protect方法,访问级别受限制
* @Title: TemplateDesign.java
* @Package design
* @author zfy1355_gmail_com
* @date 2016年2月29日 下午4:46:55
* @version V1.0
*/
public class TemplateDesign {
public static abstract class TemplateModel{
public void makePicture(){
addModel();
System.out.println("出照片了");
} ;
protected abstract void addModel();
}
public static class Child1Model extends TemplateModel{
@Override
public void addModel() {
System.out.println("添加照片模板1");
}
}
public static class Child2Model extends TemplateModel{
@Override
public void addModel() {
System.out.println("添加照片模板2");
}
}
public static void main(String[] args) {
TemplateModel model = new Child1Model();
model.makePicture();
model = new Child2Model();
model.makePicture();
}
}