博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20模板方法模式TemplateMethod
阅读量:7016 次
发布时间:2019-06-28

本文共 2301 字,大约阅读时间需要 7 分钟。

一、什么是模板方法模式

  Template Method模式也叫模板方法模式,是 行为模式之一,它把具有特定步骤算法中的某些 必要的处理委让给抽象方法,通过子类继承对抽 象方法的不同实现改变整个算法的行为。

 

二、模板方法模式的应用场景

  Template Method模式一般应用在具有以下条件 的应用中:

    - 具有统一的操作步骤或操作过程

    - 具有不同的操作细节

    - 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同

 

三、模板方法模式的结构

 

四、模板方法模式的角色和职责

  AbstractClass: 抽象类的父类

  ConcreteClass: 具体的实现子类

  templateMethod(): 模板方法

  method1()与method2(): 具体步骤方法

 

做车

1 /* 2  * 组装车 3  */ 4 public abstract class MakeCar { 5     //组装车头 6     public abstract void makeHead(); 7      8     //组装车身 9     public abstract void makeBody();10     11     //组装车尾12     public abstract void makeTail();13     14     public void make() {15         this.makeHead();16         this.makeBody();17         this.makeTail();18     }19 }

做公交车

1 //做公交车 2 public class MakeBus extends MakeCar { 3  4     public void makeBody() { 5         System.out.println("bus:组装车身"); 6     } 7  8     public void makeHead() { 9         System.out.println("bus:组装车头");10     }11 12     public void makeTail() {13         System.out.println("bus:组装车尾");14     }15 }

组装Jeep车

1 //组装Jeep车 2 public class MakeJeep extends MakeCar { 3  4     public void makeBody() { 5         System.out.println("jeep:组装车身"); 6     } 7  8     public void makeHead() { 9         System.out.println("jeep:组装车头");10     }11 12     public void makeTail() {13         System.out.println("jeep:组装车尾");14     }15 }

做卡车

1 //做卡车 2 public class MakeKa extends MakeCar { 3  4     public void makeBody() { 5         System.out.println("ka:组装车身"); 6     } 7  8     public void makeHead() { 9         System.out.println("ka:组装车头");10     }11 12     public void makeTail() {13         System.out.println("ka:组装车尾");14     }15 }

测试

1 public class MainClass { 2     public static void main(String[] args) { 3         MakeCar bus = new MakeBus(); 4 //        bus.makeHead(); 5 //        bus.makeBody(); 6 //        bus.makeTail(); 7         bus.make(); 8          9         System.out.println("-------------------");10         11         MakeCar jeep = new MakeJeep();12 //        jeep.makeHead();13 //        jeep.makeBody();14 //        jeep.makeTail();15         jeep.make();16         17         System.out.println("-------------------");18         19         MakeCar ka = new MakeKa();20         ka.make();21     }22 }

 

转载于:https://www.cnblogs.com/justdoitba/p/9034799.html

你可能感兴趣的文章
别盯着杯子
查看>>
Divide Two Integers
查看>>
MPlayer-2016 最新版本
查看>>
HTML5:Canvas-基本用法
查看>>
{WP7/WP8·获取屏幕大小}
查看>>
Java面向对象(构造方法、this、super)
查看>>
Mysql中的索引问题
查看>>
如何调用windows phone 7.1的后台闹钟功能 step by step
查看>>
多进程(了解):守护进程,互斥锁,信号量,进程Queue与线程queue(生产者与消费者模型)...
查看>>
portal中应用fusionchart
查看>>
琐碎-hadoop1.X和2.X的区别
查看>>
Java “Unhandled exception type Exception”错误提示 (转)
查看>>
PHP源码之explode分析
查看>>
怪叔叔 一路走好 下辈子我们再一起玩KOF
查看>>
B.华华教月月做数学
查看>>
Log4j配置详情
查看>>
Oracle 的四种连接-左外连接、右外连接、内连接、全连接
查看>>
6)图[4]关键路径
查看>>
python 如何自动发送测试报告
查看>>
网络流24题4
查看>>