代码改变世界

驱动开发TDD介绍

2013-05-16 08:54 by youxin, 447 阅读, 0 推荐, 收藏,
摘要:测试驱动开发(Test-Driven Development,TDD)是通过测试定义所要开发的功能的接口,然后实现功能的开发过程。 Test-Driven Development(TDD),是Extreme Programming(XP)--极限编程的一个重要组成部分。在上面的图中,列出的的是XP的12个团队实践。Test-Driven Development是其中之一。 Kent Beck 的著作TDD(Test Driven Development) 中详细讲述了测试驱动开发。 当你使用TDD的时候一定要说明是测试驱动开发还是测试驱动设计。这两者是有区别的。测试驱动开发,是通过测试定义所要 阅读全文

c++没有接口的释疑

2013-05-15 20:52 by youxin, 1415 阅读, 2 推荐, 收藏,
摘要:标准C++中有没有接口和纯抽象类的概念?Bjarne Stroustrup:我在对人们解释这个问题的过程中遇到了很多问题,而且我也一直不能理解为什么让人们理解这个问题是如此困难。自C++出现那天起,就存在着包含数据成员的类和不包含数据成员的类。在过去,人们强调利用一个最基础的设施以及该设施内部的东西来构造软件系统,而那个“最基本的设施”通常就是抽象基类。从80年代中叶到80年代末,那些仅由虚拟函数组合而成的类通常都被称为ABCs(Abstract Base Classes 抽象基类)。1987年,我在C++中加入了纯虚函数的概念,一个纯虚函数必须被其派生类重写。借助此概念,你可以在一个C++类 阅读全文

依赖倒转元祖和依赖注入详解

2013-05-13 20:24 by youxin, 419 阅读, 0 推荐, 收藏,
摘要:依赖倒转原则:代码要依赖于抽象的类,而不要依赖于具体的类;要正对接口或抽象类编程,而不是针对具体类编程。也就是说,在程序代表中传递参数书或在组合聚合关系中,尽量引用层次高的抽象类层,即使用接口和抽象类进行变量类型声明。参数类型声明。方法返回类型声明,以及数据类型的转换等,而不是用具体的类来做这些事情。为了确保该原则的应用,一个具体类应当只实现接口和抽象类中声明过的方法,而不要给出多余的方法,否则将无法调用在子类中增加的新方法。实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。有了抽象层,可以使得系统具有. 阅读全文

apache配置cgi脚本

2013-05-12 01:41 by youxin, 4024 阅读, 0 推荐, 收藏,
摘要:首先要了解apache配置文件httpd.conf。打开此文件,有一行DocumentRoot "F:/xampp/htdocs"表示http根目录为F:/xampp/htdocs配置Apache以允许CGI要让CGI程序能正常运作,必须配置Apache以允许CGI的执行,其方法有多种。1.ScriptAliasScriptAlias指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中所有的文件都是CGI程序并试图运行它。ScriptAlias指令形如:ScriptAlias /cgi-bin/ /usr/local/ 阅读全文

UML关联和依赖区别

2013-05-11 16:10 by youxin, 2947 阅读, 0 推荐, 收藏,
摘要:UML中UML依赖和UML关联关系的异同1.关联:连接模型元素及链接实例,用一条实线来表示;2.依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示;3.聚集:表示整体与部分的关系,用一条实线加空心菱形来表示;4.组成:表示整体与部分的有一关系,用一条实线加实心菱形来表示;(关联,依赖,聚集,组成的异同见后描述)5.泛化(继承):表示一般与特殊的关系,用一条实线加空心箭头来表示;6.实现:表示类与接口的关系,用一条虚线加空心箭头来表示;UML依赖和UML关联的异同:(《Java面向对象编程》一书,作者:孙卫琴来源:www.javathinker.org)在建立对象模型时,很容易 阅读全文

策略模式与桥接模式区别

2013-05-10 21:27 by youxin, 2077 阅读, 1 推荐, 收藏,
摘要:桥接模式如下:策略如下:在桥接中,Abstraction通过聚合方式引用Implementor.在策略中,Context也通过聚合引用Strategy.桥接(Bridge)模式是结构型模式的一种,而策略(strategy)模式则属于行为模式。从他们的结构图可知,在这两种模式中,都存在一个对象使用聚合的方式引用另一个对象的抽象接口的情况,而且该抽象接口的实现可以有多种并且可以替换。可以说两者在表象上都是调用者与被调用者之间的解耦,以及抽象接口与实现的分离。那么两者的区别体现在什么地方呢?1. 首先,在形式上,两者还是有一定区别的,对比两幅结构图,我们可以发现,在桥接模式中不仅Implemento 阅读全文

设计模式之桥接模式

2013-05-10 20:56 by youxin, 322 阅读, 0 推荐, 收藏,
摘要:在软件系统中,有些类由于其本身的固有特性,使得它具有两个或多个变化维度,这种变化维度又称为变化原因。对于这种多维度变化的系统,桥接模式提供了一套完整的解决方案,并且降低了系统的复杂性。模式动机:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下2种解决办法:1.为每种形状都提供一套各种颜色的版本,如下:4种形状,3种颜色,我们需要4*3=12个类,简直就是class boom。而且每增加一个形状,我们都要增加3个颜色类。增加一种颜色,其他形状都要增加。2.第二种方案是设计4个形状类,3个颜色类,根据需要对. 阅读全文

工厂模式与抽象工厂模式

2013-05-10 20:06 by youxin, 614 阅读, 0 推荐, 收藏,
摘要:在工厂方法中,工厂父类负责定义创建产品对象的公共接口,而工厂子类生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。 Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.uml:注意到Product和Factory是平行的类层级。下面看一个生产电视机的实. 阅读全文

设计模式之装饰者模式2

2013-05-10 15:28 by youxin, 253 阅读, 0 推荐, 收藏,
摘要:在oo中,一般有2中方式可以实现给一个类或对象增加行为:1.继承机制使用继承机制给现有类增加 功能,这种方法是静态的,用户 不能控制增加行为的方式和时机2.关联机制关联机制是一种更加灵活的方法,即将一个类的对象嵌入到另一个对象中,由另一个对象来决定是否调用嵌入对象的行为并扩展自己的行为,我们称这个对象为装饰器(decorator)。为了使得装饰器与他所装饰的对象对客户端来说透明,装饰器类和被装饰的类必须实现相同的接口,客户端使用时无需关心一个类的对象是否被装饰过,可以一致性第使用未被装饰的对象以及装饰好的对象。装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得 阅读全文

urllib2使用

2013-05-07 11:37 by youxin, 1552 阅读, 0 推荐, 收藏,
摘要:urllib2是一个类似curl的Python扩展,默认已经安装。官网:http://docs.python.org/2/library/urllib2.htmlTheurllib2module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.urllib2.urlopen(url[, data][, timeout])Open th 阅读全文
上一页 1 ··· 171 172 173 174 175 176 177 178 179 ··· 269 下一页