通过Junit3看组合设计模式
2015-09-13 16:22
267 查看
1. 组合设计模式是什么
组合设计模式表示个体和集合之间的关系,而且使用者不需要区分个体和集合。
2. 图示
3. 解释
3.1 个体和集合关系的体现
TestSuite代表集合 ,TestCase代表个体,Test接口。TestRunner代表TestSuite和TestCase的使用者。
TestSuite中包含多个TestCase,所以是个体和集合的关系。
集合中增加了添加个体的方法。
集合和个体对接口方法run()的实现不一样。个体TestCase.run()负责运行单一测试用例。集合TestSuite.run()负责遍历集合中所有元素,并调用其run()。
3.2 使用者不需要区分个体和集合的体现
原因: 集合和个体实现了同一个接口Test,使用者可以直接调用接口方法,这里用到了多态。
使用者有两个,一是TestRunner.doRun(),doRun(test)直接访问test,不需要区分test是集合还是个体。
二是集合TestSuite,考虑集合嵌套集合的情况,这样集合中的元素可能是集合,也可能是个体。每一个父集合不需要关心其元素是集合还是元素,直接调用test.run(),由于多态,集合和个体可以访问到正确的run()
组合设计模式表示个体和集合之间的关系,而且使用者不需要区分个体和集合。
2. 图示
3. 解释
3.1 个体和集合关系的体现
TestSuite代表集合 ,TestCase代表个体,Test接口。TestRunner代表TestSuite和TestCase的使用者。
TestSuite中包含多个TestCase,所以是个体和集合的关系。
集合中增加了添加个体的方法。
集合和个体对接口方法run()的实现不一样。个体TestCase.run()负责运行单一测试用例。集合TestSuite.run()负责遍历集合中所有元素,并调用其run()。
3.2 使用者不需要区分个体和集合的体现
原因: 集合和个体实现了同一个接口Test,使用者可以直接调用接口方法,这里用到了多态。
使用者有两个,一是TestRunner.doRun(),doRun(test)直接访问test,不需要区分test是集合还是个体。
二是集合TestSuite,考虑集合嵌套集合的情况,这样集合中的元素可能是集合,也可能是个体。每一个父集合不需要关心其元素是集合还是元素,直接调用test.run(),由于多态,集合和个体可以访问到正确的run()
相关文章推荐
- 【软工文档】总结
- php设计模式
- 第一次玩博客
- Android中无标题设置
- /usr/bin/ld: warning: libswresample.so.1, needed by /usr/lib/gcc/i686-linux-gnu/4.9/../../../../lib/
- 单例模式
- CF #296 (Div. 1) A. Glass Carving 线段树
- [题解+总结]20150913
- 服务器环境配置nginx / php / php-fpm(二)
- UI课程06 UIController及其子类,已学所有类的关系
- struts2(6)
- 将文字数据写入到硬盘上的文件中。
- “#ifdef __cplusplus extern "C" { #endif”的定义
- struts2(5)
- 常用正则表达式集锦
- POJ 3437 Tree Grafting
- 随机数概率变形01概率p和1-p改变概率为二分之一
- 员工管理系统
- Wamp 简单使用方法
- 聊一聊Android的消息机制