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
- Python设计模式(二十三)【模板方法模式】
- 设计模式(二十三) 模板模式
- 二十三种设计模式之行为型模式之模板方法
- 二十三种设计模式之模板模式
- 设计模式学习笔记十三:模板方法模式
- 设计模式学习二、模板方法模式
- python设计模式之模板方法模式
- Python设计模式(四) -- 模板方法模式
- 设计模式-模板方法模式-template-python
- 设计模式讲解与代码实践(二十三)——模板方法
- [设计模式]二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 二十三种设计模式
- 驰骋工作流引擎CCFLOW下载代码
- 融云--如何显示用户昵称和头像的
- 远程服务器部署应用(一)--传统部署方式还是自动化运维工具部署?
- OpenCart 如何安装 vQmod 教程
- ListView 实现类似电话薄标题碰撞效果
- Python设计模式(二十三)【模板方法模式】
- bat知识点8_findstr
- 文件不存在抛出异常,如何处理
- 星际大发现时代己开启,星际旅行 星际穿越,你准备好了吗?
- SQLite嵌入式数据库
- bat知识点9_type
- mybatis逆向工程生成实体
- Android 获取app应用大小、手机内存信息、删除文件方法、获得文件大小
- 微信支付APP客户端及服务端集成