千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 设计模式:类型脚本中的模板方法模式

设计模式:类型脚本中的模板方法模式

来源:千锋教育
发布人:syq
时间: 2022-09-13 15:12:32 1663053152

  欢迎来到“类型脚本中的设计模式”系列,它介绍了使用类型脚本进行 Web 开发中的一些有用的设计模式。

类型脚本中的模板方法模式

  设计模式对于Web开发人员来说非常重要,我们可以通过掌握它们来编写更好的代码。在本文中,我将使用类型脚本来介绍模板方法模式。

  CSV(逗号分隔值)是一种通用的、相对简单的文件格式。CSV 文件以纯文本形式存储表格数据(数字和文本)。当您需要处理CSV数据时,对应的处理流程如下图所示:

  在了解了上面的处理流程之后,让我们使用 Node.js来实现解析 csv 文件的功能。

  用户.csv

1

  parse-csv.ts

2

  在上面的代码中,我们导入 d3-dsv 模块来实现 csv 的解析功能。之后,我们使用 esno 来执行解析 cvs.ts 文件:

3

  当上述代码成功运行时,终端将输出以下结果:

4

  Markdown是一种轻量级标记语言,允许人们以易于阅读和写入的纯文本格式编写文档。要在网页上显示降价文档,我们必须将降价文档转换为HTML文档。

  为了实现上述功能,我们的处理流程如下:

5

  在了解了上面的处理流程之后,我们来使用 Node.js来实现解析 Markdown 文件的功能。

  Users.md

6

  parse-md.ts

7

  在上面的代码中,我们导入标记的模块来实现Markdown文件的解析功能。之后,我们使用 esno 来执行解析 md.ts 文件:

8

  当上述代码成功运行时,终端将输出以下结果:

9

  对于前两个示例,尽管解析了不同类型的文件,但您会发现它们的解析过程是相似的。

10

  整个过程主要包括三个步骤:读取文件,解析文件和处理数据。对于此场景,我们可以引入模板方法模式来封装上述三个步骤的处理顺序。

  模板方法模式由两部分组成:抽象父类和具体实现子类。通常,子类的算法框架封装在抽象父类中,它还包括一些公共方法的实现和封装子类中所有方法的执行顺序。通过继承此抽象类,子类还继承整个算法结构,并且可以选择重写父类的方法。

  接下来,让我们看一下如何使用模板方法模式实现 CSV 解析器和 Markdown 解析器。

  为了更好地理解下面的代码,我们先来看看相应的UML类图:

11

  在上图中,我们定义了一个抽象类,然后分别定义了两个子类和 。FileParser CsvParser MarkdownParser

  文件解析器类

13

  抽象类中的方法是所谓的模板方法,我们在其中封装了文件处理的过程。parse FileParser

  csvParser 类

15

  MarkdownParser 类

16

  使用 两个类 和 ,我们可以通过以下方式解析 CSV 和标记文件

17

  当您成功运行上面的代码时,相应的输出如下图所示:

18

  使用模板方法模式,我们重新实现了 CSV 和标记文件的解析。实际上,使用抽象类,我们可以轻松地开发不同的文件解析器。FileParser

  最后,我们来总结一下模板方法模式的使用场景:

  该算法的整体步骤非常固定,但是当单个部分是可变的时,此时可以使用模板方法模式来抽象易于可变的部分,以便实现子类。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT