(欧)第15章 设计模式与软件测试
来源:互联网 发布:网络信息管理平台 编辑:程序博客网 时间:2024/05/16 13:52
软件模式
设计模式关注的重点在于通过经验提取的”准则或指导方案“在设计中的应用,因此在不同层面考虑问题的时候形成了不同问题领域上的模式。
模式的目标:把共通问题中的不变部分和变化部分分离出来。不变的部分,就构成了模式。因此,模式是个经验提取的准则,并且一次次的实践中得到验证。
软件测试是指使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验软件是否满足规定的需求或弄清预期结果与实际结果之间的差别。
1 辨析鸡与蛋,用设计模式观点。
分析:“先有鸡还是先有蛋”这个问题只是对面向对象本质的一个理解,将人类自然语言放在此处不合理。不存在鸡与蛋的问题,而是型与值的问题,以及指针引用问题,因为鸡与蛋两个对象间是引用关系而不是包含关系。
2 设计模式思想描述蜡笔和毛笔有什么不同、
分析:brideg模式。画一幅画,需要准备36支型号不同的蜡笔,而改用毛笔的话3支就够,另外配12中颜料。通过bridege模式,把乘法3*12=36改为了加法运算3+12=15.
蜡笔和毛笔的一个关键区别在于笔和颜色是否能够分离。 brideg模式的用意是“将抽象化与实现化脱耦,使得二者可以独立地变化”。关键在于能否脱耦。蜡笔的颜色和蜡笔本身不能分开,所以必须使用36个色彩、大小相异的笔来绘制图画。而毛笔与颜料能够很好的脱耦,各自独立变化,简化了操作。
在这里,抽象层面的概念是“毛笔用颜料作画”,而在实现时,毛笔有大、中、小3号,颜料有红、绿、蓝等12种,于是出现36种组合。每个参与者(毛笔和颜料)都可以在自由度内随意转换。而蜡笔和颜色无法分离,造成笔和颜色两个自由度无法单独变化,使得只有创建36种对象才能完成任务。
bridge模式将继承关系转换为组合关系,从而降低了系统间的耦合,减少代码编写量。
3 观察者模式
工会给每位教工发大米的例子。教工等着发大米就是一个典型的观察者模式。
大米到了工会后,工会不把大米给每人送去,而是给每人发个轻量级的消息,教工得到消息,再把大米拉回各家。要求每位教工有一个工会的引用,在得到消息后到指定的地点领取大米。这样工会不用给每家教工送大米,而教工也不用每天到工会门口等大米。
鼠标帮助例子与上述例子相似。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题帮助。这个帮助对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
一个软件系统要求一个对象的状态发生变化时候,某些其他对象作出相应的改变。做到这一点的设计方案有很多,但是为了使系统能够易于复用,应该选择低耦合度的设计方案。减少对象之间的耦合有利于系统的复用,但是同时设计师需要这些低耦合度的对象能够维持行动的协调一致,保持高度的协作。
观察者模式
基本简介:
观察者
被观察
撤销观察
4 单例模式
特点:单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例化它,除此以外,该模式中包含一个静态私有成员变量instance与静态共有办法instance()。instance()方法负责检验并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。
软件测试基础
黑盒测试
白盒测试
- (欧)第15章 设计模式与软件测试
- 2、数据结构和设计模式(数据结构基础、字符串、设计模式与软件测试)
- 笔试面试---设计模式&软件测试&软件工程
- 【读书笔记】软件测试技术大全:第4章 软件工程与软件测试
- 第8章 编程模式与设计模式
- 第4讲 全程软件测试 - 测试设计
- 设计模式与软件架构设计
- 【设计模式】软件模式起源与诞生
- 软件测试设计与软件测试件管理
- 软件的界面测试与设计
- 软件测试的设计与组织
- 3.5 《硬啃设计模式》 第14章 超酷绘图软件 - 组合模式(Composite Pattern)
- 《软件测试实用技术与常用模板》第3章黑盒测试的实用技术
- 软件的架构与设计模式
- 软件架构设计的思想与模式
- 软件体系结构与设计模式笔记
- 软件重构与设计模式
- 软件重构与设计模式
- HDU 5984 Pocky
- ZeroBrane Studio命令行参数输入
- mysql常用命令
- arcgis for js之描点
- 【笔试集锦】多益网络二笔
- (欧)第15章 设计模式与软件测试
- React Native 源码导读(零) – 创建/运行/调试
- Pandaland HDU
- 文本排序的王者:玩透sort命令
- ajax编程的基本步骤
- POJ 2484 简单博弈
- 1285: Vegetable and Road again [最小生成树]
- 置换群Polya定理(poj 2409: Let it Bead)
- uva 11549