设计模式:模板方法模式
程序员文章站
2022-04-29 19:06:54
模板方法模式是编程中经常用到的模式,它定义了一个操作的算法骨架,将某些步骤延迟到子类实现。 这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 核心:处理某个流程的代码都已具备,但其中某个节点的代码暂时不能确定,所以将这个节点的代码 实现转移到子类完成。 例子:模拟一个银行 ......
模板方法模式是编程中经常用到的模式,它定义了一个操作的算法骨架,将某些步骤延迟到子类实现。
这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。
核心:处理某个流程的代码都已具备,但其中某个节点的代码暂时不能确定,所以将这个节点的代码
实现转移到子类完成。
例子:模拟一个银行取号业务流程。
/**
* 模擬银行取号排队
*/
public abstract class banktemplatemethod {
public void takenumber(){
system.out.println("取号排队");
}
//办理具体业务
public abstract void transact();
public void evaluate(){
system.out.println("反馈评分");
}
/**
* 模板方法,把基本操作組合在一起,防止惡意修改,一般用final修飾
*/
public final void process(){
this.takenumber();
this.transact();
this.evaluate();
}
}
public class client {
public static void main(string[] args) {
banktemplatemethod btm = new drawmoney();
btm.process();
}
}
//具体子类如果有其他业务继续定义子类即可
class drawmoney extends banktemplatemethod{
@override
public void transact() {
system.out.println("取款实现");
}
}
模板方法模式在平时业务中很常用,基于继承的方式(本质上就是多态)使得也比较容易实现。
模板方法有点类似方法回调,子类具体实现的方法就是一个钩子方法。
在实际业务中,当我们要实现一个算法,整体步骤很固定,但某些部分存在变法,那么可以将变化
部分抽象出来,供子类实现。
上一篇: jQuery pjax 应用简单示例
下一篇: 浅谈Node.js 沙箱环境
推荐阅读
-
C#模板方法模式(Template Method Pattern)实例教程
-
C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能
-
C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例
-
C#设计模式之Facade外观模式解决天河城购物问题示例
-
C#设计模式之Strategy策略模式解决007大破密码危机问题示例
-
C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例
-
C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题实例
-
代理角色java设计模式之静态代理详细介绍
-
C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题示例
-
Java设计模式之Iterator模式介绍