场景:
- 实现一个功能时,整体步骤很固定,但是,某些部分易变。易变部分可以抽象出来,供子类实现。
开发中常见的场景
- 非常繁琐,各个框架,类库中都有它的影子,比如常见的有:
- 数据库访问的封装
- Junit单元测试
- servlet中关于doGet/doPost方法调用
- spring框架中各种Template
- shire中权限认证和授权都用到了模板方法模式。
举例代码实现
-
场景:银行办理业务:
- 1.取号;
- 2.办理业务/取钱/转账/企业/个人…
- 3.给工作人员评分
-
代码实现
-
- 模板类
public abstract class BankTempLateMethod {
//具体方法
public void takeNumber(){
System.out.println("排队取号。。。。。");
}
public abstract void transact(); //办理具体的业务 钩子方法
//具体方法
public void evaluate(){
System.out.println("反馈评分。。。。。");
}
//模板方法
public final void process(){
takeNumber();
transact();
evaluate();
}
}
-
- 子类
public class Sub1BankTemplateMethod extends BankTemplateMethod{
@Override
protected void transact() {
System.out.println("办理取款业务。。。。。");
}
}
public class Sub2BankTemplateMethod extends BankTemplateMethod{
@Override
protected void transact() {
System.out.println("办理存钱业务。。。。。");
}
}
-
- 客户调用
/**
* 模板方法模式
*/
public class App {
public static void main(String[] args) {
BankTemplateMethod bankTemplateMethod1 = new Sub1BankTemplateMethod();
bankTemplateMethod1.process();
System.out.println("--------------------------------------------------");
BankTemplateMethod bankTemplateMethod2 = new Sub2BankTemplateMethod();
bankTemplateMethod2.process();
}
}
更多设计模式学习:
设计模式(1):介绍
设计模式(2):单例模式
设计模式(3):工厂模式
设计模式(4):建造者模式
设计模式(5):原型模式
设计模式(6):桥接模式
设计模式(7):装饰器模式
设计模式(8):组合模式
设计模式(9):外观模式
设计模式(10):享元模式
设计模式(11):适配器模式
设计模式(12):代理模式
设计模式(13):模板方法模式
设计模式(14):命令模式
设计模式(15):迭代器模式
设计模式(16):观察者模式
设计模式(17):中介者模式
设计模式(18):状态模式
设计模式(19):策略模式
设计模式(20):责任链模式
设计模式(21):备忘录模式
设计模式(22):解释器模式
设计模式(23):访问者模式文章来源地址https://www.toymoban.com/news/detail-852925.html
文章来源:https://www.toymoban.com/news/detail-852925.html
到了这里,关于设计模式(13):模板方法模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!