import java.util.Calendar;
/**
* @ClassName TemplateMethod
* @description: 设计模式:```
* 在开发中,去实现一个算法的时候,整体的步骤很固定,很通用,这些可以在父类中写好,但是某些部分易变,易变部分可以抽象出来,供不同的子类去实现,这就是模版模式
* @author: qsong
* @create: 2021-04-06 16:07
* @Version 1.0
**/
public class TemplateMethod {
public static void main(String[] args) {
BankTemplateMethod bank1=new DrawMoney();
bank1.process();
System.out.println("--------------------------");
BankTemplateMethod bank2=new Deposit();
bank2.process();
System.out.println("--------------------------");
//获取当前的月份
Calendar calendar=Calendar.getInstance();
int i = calendar.get(Calendar.MONTH);
System.out.println(i+1);
}
}
abstract class BankTemplateMethod{
//具体方法
private void takeNumber(){
System.out.println("1.排队取号");
}
//业务
public abstract void transact();//具体的业务,不同的人处理不同的业务
//反馈
private void evaluate(){
System.out.println("3.反馈评分");
}
//模版方法
public final void process(){
//取号
this.takeNumber();
//办理业务
this.transact();
//反馈评分
this.evaluate();
}
}
class DrawMoney extends BankTemplateMethod{
@Override
public void transact() {
System.out.println("2.柜台取钱");
}
}
class Deposit extends BankTemplateMethod{
@Override
public void transact() {
System.out.println("2.柜台存钱");
}
}
设计模式之模版方法
最新推荐文章于 2024-03-17 08:15:00 发布