Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

如何做好单元测试

如何做好单元测试

如何做好单元测试2011-01-23小斌前言单元测试是对软件基本组成单元进行的测试,是属于白盒测试的范畴,它主要通过对代码的逻辑结构进行分析来设计测试用例。在动态测试手段中,单元测试是一种非常高效的测试方法,并且是软件测试周期中第一个进行的测试。从成本角度考虑,缺陷发现越早越好,加强单元测试力度有利于降低缺陷定位和修复难度,从而降低缺陷解决成本,同时加强单元测试也减轻了后续集成测试和系统测试的负担。根据业界的统计,一个 BUG 在单元测试阶段发现花费是 1...
用DbUnit和Anthill控制测试环境

用DbUnit和Anthill控制测试环境

用DbUnit和Anthill控制测试环境2011-01-23 IBM Philippe Girolami极限编程方法的兴起将测试驱动开发和持续集成带入了主流 Java 开发实践。如果没有采用正确的工具,在 Java 服务器端开发中使用这些技术很快会成为一场噩梦。在本文中,软件开发人员 Philippe Girolami 描述了如何处理持续集成,以及如何联合使用 DbUnit 和 JUnit,以便在每次测试之前通过设置数据库状态来端到端地控制测试环境。软件...
设计模式学习笔记(一) Facade外观模式

设计模式学习笔记(一) Facade外观模式

设计模式学习笔记(一) Facade外观模式2011-02-04 blogjava 蝸ゼ牜ご赽跑GOF《设计模式》一书对Facade模式是这样描述的:为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。大致意思是说:使用一种比原有方式更简单的办法与系统交互。例如,我们把一个很文件的文件,放在了第二抽屉里,而第二个抽屉的钥匙放在了第一个抽屉里,我们要想取出这个文件,第一步肯定要拿到第一个抽屉的钥匙,然后打开它再...
设计模式学习笔记之调停者模式(Mediator)

设计模式学习笔记之调停者模式(Mediator)

设计模式学习笔记之调停者模式(Mediator)2011-02-04调停者模式(Mediator) 属于对象的行为模式。1. 定义调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分...
设计模式学习笔记(二)—-Adapter适配器模式

设计模式学习笔记(二)—-Adapter适配器模式

设计模式学习笔记(二)—-Adapter适配器模式2011-02-04 blogjava 蝸ゼ牜ご赽跑GOF《设计模式》一书对Adapter模式是这样描述的:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求:1)为都有“显示”(display)行为的点、线、正方形分...
设计模式学习笔记(三)—-Strategy策略模式

设计模式学习笔记(三)—-Strategy策略模式

设计模式学习笔记(三)—-Strategy策略模式2011-02-04 blogjava 蝸ゼ牜ご赽跑GOF《设计模式》一书对Strategy模式是这样描述的:定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换。Strategy模式使算法可独立于使用它的客户而变化。Strategy模式以下列几条原则为基础:1)每个对象都是一个具有职责的个体。2)这些职责不同的具体实现是通过多态的使用来完成的。3)概念上相同的算法具有多个不同的实现,需要进行管理。...
设计模式学习笔记(四)—Bridge桥接模式

设计模式学习笔记(四)—Bridge桥接模式

设计模式学习笔记(四)—Bridge桥接模式2011-02-04 blogjava 蝸ゼ牜ご赽跑《设计模式》一书对Bridge是这样描述的:将抽象与其实现解耦,使它们都可以独立地变化。大致意思是说:将一组实现与另一组使用他们的对象分离。这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)。下面是《Design Patterns Explained》书中的例子。其结构图如下:下面是它的实现:abstract cl...
设计模式学习笔记(五)—Abstract Factory抽象工厂模式

设计模式学习笔记(五)—Abstract Factory抽象工厂模式

设计模式学习笔记(五)—Abstract Factory抽象工厂模式2011-02-04 blogjava 蝸ゼ牜ご赽跑GOF《设计模式》一书对Abstract Factory模式是这样描述的:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。大致意思是说:我们在创建这些对象的时候,并不需要指定它们的具体类,这些具体类的对象是由工厂对象负责实例化的。下面是《Design Patterns Explained》一书的例子,有关计算机系统的...
设计模式学习笔记(六)—Decorator装饰模式

设计模式学习笔记(六)—Decorator装饰模式

设计模式学习笔记(六)—Decorator装饰模式2011-02-04 blogjava 蝸ゼ牜ご赽跑《设计模式》一书对Decorator是这样描述的:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类更为灵活。也就是说:动态地给对象添加一些额外的功能。它的工作原理是:创建一个始于Decorator对象(负责新功能的对象)终止于原对象的一个对象的“链”。例如,我们要为超市的收银台设计一个打印票据的程...
设计模式学习笔记(七)—Observer观察者模式

设计模式学习笔记(七)—Observer观察者模式

设计模式学习笔记(七)—Observer观察者模式2011-02-04 blogjava 蝸ゼ牜ご赽跑《设计模式》一书对Observer是这样描述的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。举个例子,在现实生活中,父母与孩子是最亲密的人。父母做为孩子(被观察者)的监护人(观察者),当孩子和别人打架后,一定会告诉他的父母这件事(呵呵,当孩子很小时,通常会告诉父母,长大了以后,可能不会,这里的孩子...
设计模式学习笔记(八)—Template Method模式

设计模式学习笔记(八)—Template Method模式

设计模式学习笔记(八)—Template Method模式2011-02-04 blogjava 蝸ゼ牜ご赽跑《设计模式》一书对Template Method模式是这样描述的:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重新定义它的步骤。我的理解:定义一个抽象类或者说接口,在它的内部定义一些抽象的方法(供TemplateMethod调用的步骤)和一个TemplateMethod方法(非抽象方法),封装了这些抽象方法的接口或抽象类就...
设计模式学习笔记(十)—Factory Method模式

设计模式学习笔记(十)—Factory Method模式

设计模式学习笔记(十)—Factory Method模式2011-02-04 blogjava 蝸ゼ牜ご赽跑《设计模式》一书对Factory Method模式是这样描述的:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。我的理解:FatoryMethod模式是一种创建型模式,定义一个用于创建对象的接口的意思是说,我们要定义一个用于创建对象的接口(或者说抽象类,实际上就是个抽象工厂abstract...
设计模式学习笔记(十一)—Prototype原型模式

设计模式学习笔记(十一)—Prototype原型模式

设计模式学习笔记(十一)—Prototype原型模式2011-02-04 blogjava 蝸ゼ牜ご赽跑Prototype模式的意图是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。在java的类库中已经实现了这一模式,只要你定义的类实现了Cloneable接口,用这个类所创建的对象可以做为原型对象进而克隆出更多的同类型的对象。下面举个例子,来介绍简单的介绍一下它的使用。import java.io.By...
设计模式学习笔记(十二)—Builder建造者模式

设计模式学习笔记(十二)—Builder建造者模式

设计模式学习笔记(十二)—Builder建造者模式2011-02-04 blogjava 蝸ゼ牜ご赽跑Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。刚接触到这个模式的时候,实在搞不明白它的意思,有什么用。于是,上网google了一圈,终于得到这个大家普遍认可的解释:建造模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。下面举一个例子...
设计模式学习笔记(十三)—Iterator迭代器模式

设计模式学习笔记(十三)—Iterator迭代器模式

设计模式学习笔记(十三)—Iterator迭代器模式2011-02-04 blogjava 蝸ゼ牜ご赽跑Iterator模式定义:提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。这个模式在java的类库中已经实现了,在java中所有的集合类都实现了Conllection接口,而Conllection接口又继承了Iterable接口,该接口有一个iterator方法,也就是所以的集合类都可以通过这个iterator方法来转换成Iter...
设计模式学习笔记(十四)—Command模式

设计模式学习笔记(十四)—Command模式

设计模式学习笔记(十四)—Command模式2011-02-04 blogjava 蝸ゼ牜ご赽跑一、Command模式定义:将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。二、模式解说Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作的对象,"接收者" 是...
在WEBLOGIC环境中考虑SOA

在WEBLOGIC环境中考虑SOA

在WEBLOGIC环境中考虑SOA2011-02-16 dev2dev Suchin Rengan最近我在为一个客户工作,他们有许多部署在WebLogic 8.1上的J2EE应用程序,需要我帮助他们把应用程序资产转化为SOA的服务资产。他们有严格的时限,所以不能对应用程序代码进行大的改动。在讨论中,他们不断提出关于Web服务的问题,我感觉人们通常将Web服务看作SOA的构件块。他们关注的是将应用程序组件转化为Web服务以及由此给整体环境和操作带来的影响。许...
<< 11 12 13 14 15 16 17 18 19 20 >>