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

设计模式专题(八)

——模板方法模式

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

一、概念

1)含义

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

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

2)优势

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

二、类图

三、运用场景

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

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

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

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

——written by linhxx 2017.08.01

相关阅读:

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

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

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

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

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

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

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

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

性能分析:Oracle的CLOB使用与临时段访问及其性能优化

编辑手记:在系统测试、上线和优化的过程中,抓住核心环节、不放过任何可疑,这是DBA的基本要求之一,在这个案例中,高频度调用的存储过程引起了注意。 客户新上线的一...

2965
来自专栏轮子工厂

设计模式(二)之装饰模式 | 说好了面向对象,谁也不许赖谁~

开放封闭原则:软件应该可以扩展,但不可以修改。对于扩展是开放的,对于更改是封闭的。

551
来自专栏PHP实战技术

你知道这种开发模式能更好的帮你排错吗?

很多时候我们在开发一个项目的时候写着写着sql语句报错了?(这里多指使用框架开发,当然也有原声sql语句),之后有时候会扎耳挠腮,看来看去都感觉自己的sql语句...

796
来自专栏云飞学编程

怎么让代码更Pythonic?光有技巧可不行,你还需要看这些

写代码如同写文章,好的文章是反复修改出来的,代码也同样是反复的重构出来的。今天给大家分享下,怎么从一个编程学习者变为一个程序猿(程序媛)!起码不要让别人一看你的...

943
来自专栏Create Sun

mvc+webapi 项目架构

首先项目是mvc5+webapi2.0+orm-dapper+ef codefirst+redis+quartz.net+actionmq。 1.项目框架层次结...

36616
来自专栏铭毅天下

Elasticsearch聚合优化 | 聚合速度提升5倍!

? 1、聚合为什么慢? 大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 Elastic...

4437
来自专栏玄魂工作室

【译】JavaScript的工作原理:引擎,运行时和调用堆栈的概述

随着javascript变得越来越流行,很多团队的技术栈都开始使用它,比如前端、后端、hybrid、嵌入式设备等。

613
来自专栏java一日一条

11 个简单的 Java 性能调优技巧

大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如...

812
来自专栏撸码那些事

编码最佳实践——开放封闭原则

开放与封闭原则有两种不同的定义,分别是20世纪80年代最原始的定义和后期一个更现代的定义,后者对前者进行更加详尽的阐述。

713
来自专栏Ryan Miao

java设计模式(五)--建造者模式(Builder)

转载:http://zz563143188.iteye.com/blog/1847029 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来...

3066

扫码关注云+社区