文章分类 - 软件工程(转载)
摘要:看到一个 设计模式 讲解不过的博客与大家共享: http://terrylee.cnblogs.com/archive/2006/06/01/334911.html
阅读全文
摘要:NUNIT使用说明 一:软件及安装 免费,开源的单元测试软件。安装只要运行安装程序,按所有缺省设置即可。NUNIT:www.nunit.orgNUNIT ADDIN :http://sourceforge.net/projects/nunitaddin/ ...
阅读全文
摘要:March 6, 2006 封装变化(Part Three) Filed under: Design & Pattern — bruce zhang @ 6:35 pm 设想这样一个需求,我们需要为自己的框架提供一个负责排序的组件。目前需要实现的是冒泡排序算法和快速排序算法,根据“面向接口编程”的思想,我们可以为这些排序算法提供一个统一的接口ISort,在这个接口中有一个方法Sort(),它...
阅读全文
摘要:封装变化(Part Two) Filed under: Design & Pattern — bruce zhang @ 8:16 pm 考虑一个日志记录工具。目前需要提供一个方便的日志,使得客户可以轻松地完成日志的记录。该日志要求被记录到指定的文本文件中,记录的内容属于字符串类型,其值由客户提供。我们可以非常容易地定义一个日志对象: public class Log{ publi...
阅读全文
摘要:封装变化(Part One) Filed under: Design & Pattern — bruce zhang @ 8:16 pm 软件设计最大的敌人,就是应付需求不断的变化。变化有时候是无穷尽的,于是项目开发就在反复的修改、更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看...
阅读全文
摘要:Windows Communication Foundation之旅(Part Three) Filed under: WCF — bruce zhang @ 10:01 am 《Windows Communication Foundation之旅》系列之三 示例代码下载:DuplexSample.rar 四、Service Contract编程模型在Part Two中,我以“Hello W...
阅读全文
摘要:Windows Communication Foundation之旅(Part Four) Filed under: WCF — bruce zhang @ 4:26 pm 《Windows Communication Foundation之旅》系列之四 六、定义DataContract 我在介绍如何定义一个ServiceContract时,举了这样的一个例子,代码如下:[ServiceCo...
阅读全文
摘要:Windows Communication Foundation之旅(Part Two) Filed under: WCF — bruce zhang @ 8:39 am 《Windows Communication Foundation之旅》系列之二 三、WCF的技术要素作为基于SOA(Service Oriented Architecture)的一个框架产品,WCF最重要的就是能够快捷...
阅读全文
摘要:Windows Communication Foundation之旅(Part One) Filed under: WCF — bruce zhang @ 2:31 am 《Windows Communication Foundation之旅》系列之一 前言:WCF是微软基于SOA(Service Oriented Architecture)推出的.Net平台下的框架产品,它代表了软件架构...
阅读全文
摘要:4.1.Net平台AOP技术概览 .Net平台与Java平台相比,由于它至今在服务端仍不具备与unix系统的兼容性,也不具备类似于Java平台下J2EE这样的企业级容器,使得.Net平台在大型的企业级应用上,常常为人所诟病。就目前而言,.Net平台并没有提供AOP技术的直接实现,而微软在未来对于.Net的发展战略目标,我们仍未可知。但我相信微软对于目前炙手可热的AOP技术应该不会视而不见。也许在...
阅读全文
摘要:AOP技术研究——Java平台AOP技术研究 Filed under: AOP — bruce zhang @ 9:38 pm 3.1 Java平台AOP技术概览 3.1.1 AOP技术在Java平台中的应用 AOP在实验室应用和商业应用上,Java平台始终走在前面。从最初也是目前最成熟的AOP工具——AspectJ,到目前已经融和在企业级容器JBoss中的JBoss AOP,均建立在Jav...
阅读全文
摘要:AOP技术研究——AOP技术基础 Filed under: AOP — bruce zhang @ 9:55 pm 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新的编程思想,借助这一思想或许可以通过减少代码重复模块从而帮助开发人员提...
阅读全文
摘要:AOP技术研究——引言 Filed under: AOP — bruce zhang @ 10:06 pm 1 引言 软件设计因为引入面向对象思想而逐渐变得丰富起来。“一切皆为对象”的精义,使得程序世界所要处理的逻辑简化,开发者可以用一组对象以及这些对象之间的关系将软件系统形象地表示出来。而从对象的定义,进而到模块,到组件的定义,利用面向对象思想的封装、继承、多态的思想,使得软件系统开发可以向...
阅读全文
摘要:一、模式概述 “面向接口编程”是面向对象编程思想中最重要的一个原则。根据“封装变化”的原理,我们常常将易于变化的部分进行抽象,定义为接口。对于调用者而言,只需要知道接口的外部定义即可,具体的实现则不用理会。在设计模式中,Strategy模式就是这样的一个“面向接口编程”的最佳体现,它进行抽象的一部分是针对特定的“算法”,或者说是“策略”。假设我们要开发一个税务系统,那么有关税务的计算就会依照纳税...
阅读全文
摘要:一、模式概述 在面向对象设计时,我们常常需要辨认对象的职责。理想的状态下,我们希望自己建立的对象只具有一个职责。对象的责任越少,则该对象的稳定性就越好,受到的约束也就越少。职责分离,可以最大限度地减少彼此之间的耦合程度,从而建立一个松散耦合的对象网络。 职责分离的要点是对被分离的职责进行封装,并以抽象的方式建立起彼此之间的关系。在C#中,我们往往将这些可能变化的对象抽象为接口和抽象类,从而将原来...
阅读全文
摘要:一、模式概述 一个场景是我们要为一个对象动态添加新的职责,这个职责并不修改原有的行为,而是在原有行为基础上添加新的功能,就好比装饰工人为一座新居的墙上涂抹上色彩缤纷的颜料一般。从我们拥有的面向对象的知识出发,为一个对象增加新的职责,完全可以利用继承机制,然而再通过实例化派生的子类,来获得新增的职责。由于需要在原有行为基础上添加新功能,此时父类的方法应该为虚方法,例如用户登录行为:public c...
阅读全文
摘要:一、模式概述 描述Composite模式的最佳方式莫过于树形图。从抽象类或接口为根节点开始,然后生枝发芽,以形成树枝节点和叶结点。因此,Composite模式通常用来描述部分与整体之间的关系,而通过根节点对该结构的抽象,使得客户端可以将单元素节点与复合元素节点作为相同的对象来看待。 由于Composite模式模糊了单元素和复合元素的区别,就使得我们为这些元素提供相关的操作时,可以有一个统一的接口...
阅读全文
摘要:一、模式概述 也许Factory Method模式是设计模式中应用最广泛的模式。在面向对象的设计中,关于对象的管理是其核心所在,而其中对象的创建则是对象管理的第一步。对象的创建非常简单,在C#中,只需要应用new操作符调用对象的构造函数即可,然而创建对象的时机却非常重要。 首先我们从对象的特征来看,代表抽象关系的类型,如接口和抽象类,是不能创建的,换句话说,我们要创建的对象都是与具体的对象类型...
阅读全文
摘要:版本: 1.0.1 上下文 许多计算机系统的用途都是从数据存储检索数据并将其显示给用户。在用户更改数据之后,系统再将更新内容存储到数据存储中。因为关键的信息流发生在数据存储和用户界面之间,所以您可能倾向于将这两部分绑在一起,以减少编码量并提高应用程序性能。但是,这种看起来自然而然的方法有一些大问题。一个问题是,用户界面的更改往往比数据存储系统的更改频繁得多。将数据和用户界面这两部分耦合在一起带来的...
阅读全文
摘要:February 6, 2005 从容自若的CTO Filed under: Design & Pattern — bruce zhang @ 1:31 pm 《让僵冷的翅膀飞起来》系列之五 让我们假设这样一个场景:一年以前,Media公司开发出一套通过电脑接收广播的Radio仿真软件产品。(有这样的产品吗,能真正接收广播的软件?我表示怀疑)这个产品早已投入市场,客户已经在使用了。后来,Me...
阅读全文
浙公网安备 33010602011771号