Python设计模式:模板模式

设计模式十七:模板模式

什么是模板模式

编写优秀代码的一个要素是避免冗余;
模式关注的是消除代码冗余;
无需改变算法结构就能重新定义一个算法的某些部分。

使用场景

发现结构相近的算法中有重复代码,则可以把算法的不变部分留在一个模板方法中,把易变的部分移动到动作/钩子方法中。

典型案例

工人的日常
所有工人都遵从或多或少相同的例行流程,但例行流程的某些特定部分区别又很大。

实例代码

from cowpy import cow # 艺术字符

def dots_style(msg):
    msg = msg.capitalize()
    msg = '.'*10 + msg +'.'*10
    return msg

def admire_style(msg):
    msg = msg.upper()
    return '!'.join(msg)

def cow_style(msg):
    msg = cow.milk_random_cow(msg)
    return msg

def generate_banner(msg,style=dots_style): # 模板函数 
    print('-- start of banner --')
    print(style(msg))
    print('-- end of banner --\n\n')

def main():
    msg = 'happy coding'
    [generate_banner(msg,style) for style in (dots_style,admire_style,cow_style)]

if __name__ == "__main__":
    main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值