本文介绍: 模板⽅法模式将算法的不变部分被封装在模板⽅法中,⽽可变部分算法由⼦类继承实现,这样做可以很好的提⾼代 码的复⽤性,但是当算法的框架发⽣变化时,可能需要修改模板类,这也会影响到所有的⼦类。有些步骤是固定的可以抽取父类,在父类中实现各个步骤,并且在父类中定义一个流程控制方法,将某个容易发生变化的步骤定义为抽象方法,针对不同的子类实现不同的方法,最终子类调用父类的流程控制方法即可。是一种行为型的设计模式,
是一种行为型的设计模式,将一些步骤的实现延迟到子类有些步骤是固定的可以抽取父类,在父类中实现各个步骤,并且在父类中定义一个流程控制方法,将某个容易发生变化的步骤定义为抽象方法,针对不同的子类实现不同的方法,最终子类调用父类的流程控制方法即可
public abstract class AbstractBank {
//办理业务方法 -- 模板方法
public void handle(){
this.offerNumber();
this.lineup();
this.business();
this.score();
}
//抽号
public void offerNumber(){
System.out.println("抽号");
}
//排队
public void lineup(){
System.out.println("排队");
}
//评分
public void score(){
System.out.println("评分");
}
//办理具体业务--抽象方法,由具体子类实现
public abstract void business();
}
public class StoreBusiness extends AbstractBank{
//办理的具体业务
public void business() {
System.out.println("我要存钱");
}
}
public class TransferBusiness extends AbstractBank{
//转账
public void business() {
System.out.println("我要转账");
}
}
public class Test {
public static void main(String[] args) {
StoreBusiness storeBusiness = new StoreBusiness();
storeBusiness.handle();
System.out.println("===================================");
TransferBusiness transferBusiness = new TransferBusiness();
transferBusiness.handle();
}
}
总结:模板⽅法模式将算法的不变部分被封装在模板⽅法中,⽽可变部分算法由⼦类继承实现,这样做可以很好的提⾼代 码的复⽤性,但是当算法的框架发⽣变化时,可能需要修改模板类,这也会影响到所有的⼦类
原文地址:https://blog.csdn.net/weixin_64704029/article/details/135893060
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_64921.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。