设计模式:行为型与架构型解析
1. 行为型设计模式
1.1 模板模式
编写优质代码的关键在于避免冗余。在面向对象编程(OOP)中,方法和函数是避免编写冗余代码的重要工具。然而,在处理现实世界的算法时,我们常常会写出冗余代码,而模板设计模式正是为解决这一问题而生。该模式专注于消除代码冗余,其核心思想是在不改变算法结构的前提下,重新定义算法的某些部分。
1.1.1 现实世界示例
- 工人日常工作 :同一公司的工人日常工作流程非常接近模板设计模式。所有工人遵循相同的日常流程,但具体部分却大不相同。
- Python 的 cmd 模块 :Python 在 cmd 模块中使用了模板模式,该模块用于构建面向行的命令解释器。具体来说,
cmd.Cmd.cmdloop()实现了一个算法,该算法持续读取输入命令并将其分派到操作方法。循环前、循环后以及命令解析部分的操作始终相同,这被称为算法的不变部分;而实际的操作方法则是可变部分。
1.1.2 使用场景
模板设计模式主要用于消除代码重复。如果我们发现具有结构相似性的算法中存在可重复的代码,就可以将算法的不变(公共)部分保留在模板方法/函数中,将可变(不同)部分移至操作/钩子方法/函数中。例如,分页算法可以拆分为抽象(不变)部分和具体(可变)部分。不变部分处理诸如最大行数/页数等问题,可变部分包含显示特定分页页面的页眉和页脚的功能。
1.1.3 实现示例
以下是一个实现横幅生成器的示例:
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



