14、设计模式:行为型与架构型解析

设计模式:行为型与架构型解析

1. 行为型设计模式

1.1 模板模式

编写优质代码的关键在于避免冗余。在面向对象编程(OOP)中,方法和函数是避免编写冗余代码的重要工具。然而,在处理现实世界的算法时,我们常常会写出冗余代码,而模板设计模式正是为解决这一问题而生。该模式专注于消除代码冗余,其核心思想是在不改变算法结构的前提下,重新定义算法的某些部分。

1.1.1 现实世界示例
  • 工人日常工作 :同一公司的工人日常工作流程非常接近模板设计模式。所有工人遵循相同的日常流程,但具体部分却大不相同。
  • Python 的 cmd 模块 :Python 在 cmd 模块中使用了模板模式,该模块用于构建面向行的命令解释器。具体来说, cmd.Cmd.cmdloop() 实现了一个算法,该算法持续读取输入命令并将其分派到操作方法。循环前、循环后以及命令解析部分的操作始终相同,这被称为算法的不变部分;而实际的操作方法则是可变部分。
1.1.2 使用场景

模板设计模式主要用于消除代码重复。如果我们发现具有结构相似性的算法中存在可重复的代码,就可以将算法的不变(公共)部分保留在模板方法/函数中,将可变(不同)部分移至操作/钩子方法/函数中。例如,分页算法可以拆分为抽象(不变)部分和具体(可变)部分。不变部分处理诸如最大行数/页数等问题,可变部分包含显示特定分页页面的页眉和页脚的功能。

1.1.3 实现示例

以下是一个实现横幅生成器的示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值