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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章