模板方法模式
来源:互联网 发布:阿里云备份恢复要多久 编辑:程序博客网 时间:2024/06/06 06:59
一、什么是模板方法模式
Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。
二、模板方法模式的应用场景
Template Method模式一般应用在具有以下条件的应用中:
- 具有统一的操作步骤或操作过程
- 具有不同的操作细节
- 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同
三、模板方法模式的角色和职责
AbstractClass:抽象类的父类
ConcreteClass:具体的实现子类
templateMethod():模板方法
method1()与method2():具体步骤方法
MakeCar.java /* * 组装车 */ public abstract class MakeCar { //组装车头 public abstract void makeHead(); //组装车身 public abstract void makeBody(); //组装车尾 public abstract void makeTail(); public void make() { this.makeHead(); this.makeBody(); this.makeTail(); } } MakeBus.java public class MakeBus extends MakeCar { public void makeBody() { System.out.println("bus:组装车身"); } public void makeHead() { System.out.println("bus:组装车头"); } public void makeTail() { System.out.println("bus:组装车尾"); } } MakeJeep.java public class MakeJeep extends MakeCar { public void makeBody() { System.out.println("jeep:组装车身"); } public void makeHead() { System.out.println("jeep:组装车头"); } public void makeTail() { System.out.println("jeep:组装车尾"); } } MakeKa.java public class MakeKa extends MakeCar { public void makeBody() { System.out.println("ka:组装车身"); } public void makeHead() { System.out.println("ka:组装车头"); } public void makeTail() { System.out.println("ka:组装车尾"); } } MainClass.java public class MainClass { public static void main(String[] args) { MakeCar bus = new MakeBus(); // bus.makeHead(); // bus.makeBody(); // bus.makeTail(); bus.make(); System.out.println("-------------------"); MakeCar jeep = new MakeJeep(); // jeep.makeHead(); // jeep.makeBody(); // jeep.makeTail(); jeep.make(); System.out.println("-------------------"); MakeCar ka = new MakeKa(); ka.make(); } }
0 0
- 深入浅出模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法设计模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- TemplateMethod模板方法模式
- 模板方法模式
- 模板方法模式
- 模板方法模式
- 将Excel文件转换为Html
- Linux 指令详解 df 检查文件系统的磁盘空间使用情况
- 设计模式实践六-接口隔离原则
- Linux的信号处理
- jQuery Validate 中的 remote
- 模板方法模式
- hg 验证失败
- 当oracle clob类型不能和group by并用,但是需要去除多列重复
- sublime text3及其插件的安装
- Android 学习资料
- IOS mysql/Java服务端对emoji表情的支持
- 一种TextView插入图片的途径(图片的显示高度和文字高度一致)
- Tomcat使用心得
- 离线使用Android开发者文档