Python设计模式(二十三)【模板方法模式】

来源:互联网 发布:人工智能平台发布 编辑:程序博客网 时间:2024/05/17 00:55

过去属于死神,现在属于自己。

"""模板方法模式"""ingredients = "垃圾邮件 鸡蛋 苹果"line = '-' * 10# 骨架def iter_elements(getter, action):    """模板的骨架-迭代项目"""    for element in getter():        action(element)        print(line)def rev_elements(getter, action):    """模板的骨架-反序迭代项目"""    for element in getter()[::-1]:        action(element)        print(line)def get_list():    return ingredients.split()def get_lists():    return [list(x) for x in ingredients.split()]def print_item(item):    print(item)def reverse_item(item):    print(item[::-1])#创建模板def make_template(skeleton, getter, action):    """实例化一个模板方法,有 getter 和 action"""    def template():        skeleton(getter, action)    return template# 创建我们的模板函数templates = [make_template(s, g, a)             for g in (get_list, get_lists)             for a in (print_item, reverse_item)             for s in (iter_elements, rev_elements)]# 执行他们for template in templates:    template()

结果:

垃圾邮件----------鸡蛋----------苹果----------苹果----------鸡蛋----------垃圾邮件----------件邮圾垃----------蛋鸡----------果苹----------果苹----------蛋鸡----------件邮圾垃----------['垃', '圾', '邮', '件']----------['鸡', '蛋']----------['苹', '果']----------['苹', '果']----------['鸡', '蛋']----------['垃', '圾', '邮', '件']----------['件', '邮', '圾', '垃']----------['蛋', '鸡']----------['果', '苹']----------['果', '苹']----------['蛋', '鸡']----------['件', '邮', '圾', '垃']----------
0 0
原创粉丝点击