模板模式

编写优秀代码的一个要素就是避免冗余,在面向对象编程中方法和函数是我们用来避免编写冗余代码的重要工具

模板设计模式旨在消除代码重复。

 

横幅生成器:
将一段文本发送给一个函数,该函数要生成一个包含该文本的横幅。横幅有很多种。但有一个默认,也能够使用我们提供的风格
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'
    for style in (dots_style, admire_style, cow_style):
        generate_banner(msg, style)

if __name__ == '__main__':
    main()
-- start of banner --
..........Happy coding..........
-- end of banner --


-- start of banner --
H!A!P!P!Y! !C!O!D!I!N!G
-- end of banner --


-- start of banner --
 ______________ 
< happy coding >
 -------------- 
   \         __------~~-,
    \      ,'            ,
          /               \
         /                :
        |                  '
        |                  |
        |                  |
         |   _--           |
         _| =-.     .-.   ||
         o|/o/       _.   |
         /  ~          \ |
       (____\@)  ___~    |
          |_===~~~.`    |
       _______.--~     |
       \________       |
                \      |
              __/-___-- -__
             /            _ \
-- end of banner --

 

设计模式是被发现,而不是被发明出来的

 

posted @ 2018-12-18 13:57  慕沁  阅读(168)  评论(0)    收藏  举报