设计模式专题(八) ——模板方法模式

设计模式专题(八)

——模板方法模式

(原创内容,转载请注明来源,谢谢)

一、概念

1)含义

模板方法模式是为了让重复的内容都在父类实现,而避免重复。当完成某一细节层次一致的一个过程或者一系列步骤,其中个别步骤不同,则可以用模板方法模式进行处理。

模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类。模板方法使得子类可以不改变算法结构即可重定义算法的某些特定步骤。

2)优势

模板方法模式通过把不变行为搬移到父类,去除子类的重复代码。模板方法提供一个很好的代码复用平台。当不变的行为在可变的子类中出现,则可以把行为搬到单一的地方,子类摆脱重复的行为。

二、类图

三、运用场景

模板方法模式非常常用,在公司的大项目中,代码重复率往往也会作为考核指标。另外,大量重复的代码带来维护的不变,如果有需要修改的地方,容易有遗漏。

因此,模板方法模式通常用于总的父类,再让子类去继承。

例如,结合工厂方法模式,针对要实现的数据库实体,将数据库的连接、数据库的操作等,放在公共的类进行封装,再对每个具体的表格去实现实体。

此部分在工厂方法模式已经实现,不再赘述。

——written by linhxx 2017.08.01

相关阅读:

设计模式专题(七)——建造者模式

设计模式专题(六)——原型模式

设计模式专题(五)——工厂方法模式

设计模式专题(四)——代理模式

设计模式专题(三)——装饰模式

设计模式专题(二)——策略模式

设计模式专题(一)——面向对象的设计原则

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2017-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

设计模式专题(五)——工厂方法模式

设计模式专题(五)——工厂方法模式 (原创内容,转载请注明来源,谢谢) 一、概述 1、工厂方法与简单工厂模式区别 工厂方法模式与简单工厂模式不同 简单工厂模...

39790
来自专栏海说

深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符

  本文的内容其实可以成为汇编语言的基础,因为汇编语言大部分时候是在操作一些我们平时开发看不到的东西,因此本文的目的就是搞清楚,汇编语言都是在操作些什么东西。或...

13640
来自专栏智能算法

你不可不知的23种设计模式

目录 创建型 1. Factory Method(工厂方法) 2. Abstract Factory(抽象工厂) 3. Builder(建造者) 4. Prot...

34660
来自专栏从零开始学 Web 前端

嵌入式面试题(一)

4. 空指针(null pointer)指向了内存的什么地方(空指针的内部实现)?

14120
来自专栏有趣的django

1.python简介

简介 1、python语言介绍 python的创始人:Guido Van Rossum 2、python是一门什么样的语言 编程语言主要从以下几个角度进行分类:...

42050
来自专栏FreeBuf

VLC播放器加载恶意字幕文件导致执行任意代码漏洞分析与POC实现

今年5月23号的时候,听说checkpoint搞了个大新闻:vlc等播放器加载特定字幕可以完全控制用户电脑。当时我就震惊了:还有何种操作。想想看,当你吃着辣条,...

43240
来自专栏奇点大数据

用python做科学计算之pandas入门简介

pandas是一个开源的python数据分析和处理包,使用灵活方便,性能高,速度快,简单介绍一下它里面比较常用的功能 数据读取 它支持多种数据读取的方式这里简...

30060
来自专栏程序员的知识天地

Python牛B操作:一行代码减少一半内存占用

在项目制作中,我们必须要存储和处理一个相当大的动态列表。测试人员在测试过程中,抱怨内存不足。下面介绍一个简单的方法,通过添加一行代码来解决这个问题。

16820
来自专栏FreeBuf

pwnable.tw刷题之dubblesort

前言 上一篇中我介绍了phttp://www.freebuf.com/articles/others-articles/134271.htmlwnable.tw...

36460
来自专栏程序员宝库

Java 异常处理的 9 个最佳实践

在 Java 中,异常处理是个很麻烦的事情。初学者觉得它很难理解,甚至是经验丰富的开发者也要花费很长时间决定异常是要处理掉和抛出。 所以很多开发团队约定一些原则...

35590

扫码关注云+社区

领取腾讯云代金券