Python设计模式(二十)【中介模式】
来源:互联网 发布:安卓社交软件 编辑:程序博客网 时间:2024/05/19 06:15
我不去想是否能够成功,既然选择了远方,便只顾风雨兼程;我不去想,身后会不会袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影。
# -*- coding: utf-8 -*-import randomimport timeclass TC: def __init__(self): self._tm = None self._bProblem = 0 def setup(self): print("设置测试") time.sleep(0.1) self._tm.prepareReporting() def execute(self): if not self._bProblem: print("执行测试") time.sleep(0.1) else: print("问题设置。测试不执行。") def tearDown(self): if not self._bProblem: print("拆除") time.sleep(0.1) self._tm.publishReport() else: print("测试不执行。没有拆除需要") def setTM(self, tm): self._tm = tm def setProblem(self, value): self._bProblem = valueclass Reporter: def __init__(self): self._tm = None def prepare(self): print("报表类正准备报告结果") time.sleep(0.1) def report(self): print("报告测试的结果") time.sleep(0.1) def setTM(self, tm): self._tm = tmclass DB: def __init__(self): self._tm = None def insert(self): print("增加执行开始状态在数据库") time.sleep(0.1) # 下面的代码是模拟从DB到TC通信 if random.randrange(1, 4) == 3: return -1 def update(self): print("更新数据库中的测试结果") time.sleep(0.1) def setTM(self, tm): self._tm = tmclass TestManager: def __init__(self): self._reporter = None self._db = None self._tc = None def prepareReporting(self): rvalue = self._db.insert() if rvalue == -1: self._tc.setProblem(1) self._reporter.prepare() def setReporter(self, reporter): self._reporter = reporter def setDB(self, db): self._db = db def publishReport(self): self._db.update() self._reporter.report() def setTC(self, tc): self._tc = tcif __name__ == '__main__': reporter = Reporter() db = DB() tm = TestManager() tm.setReporter(reporter) tm.setDB(db) reporter.setTM(tm) db.setTM(tm) #为了简化,我们在相同的测试循环。 #实际上,它可能是有关各种独特的测试类和它们的对象 for i in range(3): tc = TC() tc.setTM(tm) tm.setTC(tc) tc.setup() tc.execute() tc.tearDown()
结果如图:
0 0
- Python设计模式(二十)【中介模式】
- PHP设计模式系列(二十):中介者模式
- 第二十一篇 设计模式--中介模式
- Python设计模式-中介者模式
- 设计模式-中介者模式-mediator-python
- python设计模式(中介者模式)
- 大话设计模式-----(十)职责链模式、中介者模式
- 设计模式 - 中介模式
- java 开发模式之二十 :中介者模式
- 大话设计模式二十五:中介者模式(mediator)
- 设计模式实现(二十一)---中介者模式(Mediator)
- 设计模式C++实现二十一:中介者模式
- 设计模式之二十一:中介者模式(Mediator)
- JAVA--中介者模式(Mediator)--设计模式二十二
- 设计模式(二十一)中介者模式
- Java设计模式《二十一》中介者模式
- 设计模式—中介者模式(二十一)
- 二十三种设计模式之中介者模式
- NOTE-1
- SICP 1.06-1.08
- 删除某个目录下所有文件
- 流光似水仅缅怀我3年java开发
- 配置redis外网访问
- Python设计模式(二十)【中介模式】
- SQL Server日期的获取与比较
- 前端学习笔记1--md5加密中文
- ajax传递数组
- java设计模式——状态模式(State Pattern)
- Android 的按钮的监听事件的写法
- Storyboard 本地化修改
- Android中DisLruCache缓存封装
- Android TypedValue.applyDimension()的用法