博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Template Method(模板方法)模式
阅读量:6331 次
发布时间:2019-06-22

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

1. 意图

定义一个操作中的算法的骨架. 而将一些步骤延迟到子类中.

它使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.

2. 动机

3. 适用性

一次性实现一个算法的不变部分. 并将可变部分的行为留给子类去实现.

各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复.
控制子类扩展. 模板方法只在特定点调用"hook"操作.只允许子类扩展这些地方.

4. 结构图

5. 参与者

AbstractClass(抽象类)

    ----定义抽象的原语操作(Primitive operation).具体的子类将重新定义这些原语操作.
    ----实现一个模板方法.定义算法的骨架. 在模板方法里会调用原语操作.
ConcreteClass(具体类)
    ----实现原语操作以完成算法中与特定子类相关的步骤.

转载地址:http://krboa.baihongyu.com/

你可能感兴趣的文章
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
IntelliJ IDEA
查看>>
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
字符串与整数之间的转换
查看>>
断点传输HTTP和URL协议
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
mysql服务器的主从配置
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>