设计模式(22)------模板方法模式
来源:互联网 发布:手机绿色上网软件 编辑:程序博客网 时间:2024/06/06 04:07
模板方法作用:
定义一个操作中算法的骨架,将一些算法的步骤延迟到子类中。
应用场景:
(1)一次性实现一个算法的不变的部分,将可变的留给子类来实现。
(2)各子类中公共的行为应该被提起出来并集中到一个公共的父类中,以避免代码的重复。
(3)控制子类扩展。
参与对象:
(1)AbstractClass
定义抽象的原语操作,具体的子类将重定义它们,将实现一个算法的各个步骤。
(2)ConcreteClass
继承抽象类,完成算法中与特定子类相关的步骤。
eg:
AbstractClass
package com.lanhuigu.base.design.behavior.TemplateMethod;/** * AbstractClass: 定义抽象的原语操作,具体的子类将重定义它们,将实现一个算法的各个步骤。 */public abstract class Template {public abstract void print();public void update() {System.out.println("******begin******");for (int i=0;i<10;i++) {print();}System.out.println("******end******");}}
ConcreteClass
package com.lanhuigu.base.design.behavior.TemplateMethod;/** * ConcreteClass: 继承抽象类,完成算法中与特定子类相关的步骤。 */public class ConcreteTemplate extends Template {@Overridepublic void print() {// TODO Auto-generated method stubSystem.out.println("子类实现打印方法");}}
Client
package com.lanhuigu.base.design.behavior.TemplateMethod;public class Test {public static void main(String[] args) {Template template = new ConcreteTemplate();template.update();}}
运行结果:
0 0
- 设计模式(22)------模板方法模式
- 设计模式(22)-模板方法模式
- 设计模式(22)--模板方法模式
- PHP设计模式-模板模式(模板方法模式)
- PHP设计模式-模板模式(模板方法模式)
- 设计模式(7)-模板方法模式
- 【设计模式】-模板方法模式(Template)
- 设计模式(7):模板方法模式
- c++设计模式(模板方法模式)
- 设计模式(18) - 模板方法模式
- 设计模式(4):模板方法模式
- 设计模式(七)模板方法模式
- 设计模式:模板方法模式(Template)
- 设计模式(一)模板方法模式
- 设计模式(九)模板方法模式
- 设计模式(九)--模板方法模式
- 设计模式(七):模板方法模式
- Java/Android 设计模式系列(22)--模板方法模式
- 设计模式(21)------策略模式
- k8s1.4 新特性
- 应用程序无法正常启动(0x000007b)的不常见的解决过程
- hdu 5540/Secrete Master Plan
- 1134: 整数去位 贪心
- 设计模式(22)------模板方法模式
- 集合_java集合框架
- 实现View 滑动的几种方法
- 设计模式(23)------访问者模式
- Python学习总结(5)-模块和包
- 最小花费(C#)
- Linux相关(Yum源搭建--基于FTP)
- 手把手教你炫酷慕课网视频启动导航的完美实现
- String StringBuilder StringBuffer