08 2005 档案
摘要:在.Net 1.1中,要获得磁盘信息,只有通过Win32的API来获得,例如: //获取磁盘剩余空间;[DllImport( "kernel32.dll", EntryPoint="GetDiskFreeSpaceA" )]public static extern int GetDiskFreeSpace(string lpRootPathName,ref int lpSectorsPerClu...
阅读全文
摘要:以前做项目的时候,需要提供文件压缩功能。当时是使用了一个开源的类库,名为ZipLib,使用起来还是很方便的。我还在自己的英文博客上post了一篇文章《ZipLib Works Well! 》也许是看到了这个功能的必要性,在.Net 2.0中,微软在System.IO中新增了System.IO.Compression命名空间,提供了压缩功能的相关类GZipStream。这个类的使用与一般的文件流使用...
阅读全文
摘要:本文仅介绍了自己对AOP的认识,没有技术含量啊,只是希望自己能够在AOP的大旗下,做个摇旗呐喊的小卒,借本文鼓吹一下AOP。不过,这种鼓吹有点反面的意思,然而却是自己较为冷静的思考。识见疏陋,希望大家不吝赐教。本文发表与2005年《程序员》第五期,发表时略有删改。 什么是AOP? 最初听到AOP这个名词,我总是错觉其与OOP是否具有孪生性?那么,所谓AOP,即面向方面编程(Aspect Orien...
阅读全文
摘要:从本月起,Design&Pattern团队将对每个月,团队成员发表文章数进行统计,并公布写作者名单及发表文章数。同时,列出该月发表的较有质量或有影响的精华文章。以下是2005年7月,团队文章统计共发表11篇文章,其中:idior:共发表5篇文章;小陆:共发表2篇文章;发表1篇文章的成员有:THIN,老翅寒暑,wayfarer,netwy以下是精华文章推荐:《设计和编写可复用的代码》 作者:小陆《...
阅读全文
摘要:在.Net中,我们很少有机会使用Iterator模式,因为.Net Framework已经运用Iterator模式为所有的集合对象实现了迭代器。我们在遍历集合对象时,喜欢使用C#提供的foreach语句来访问该对象中的所有元素,例如访问ArrayList对象al:foreach (object o in al){ Console.WriteLine(o.ToString());}而该语句...
阅读全文
摘要:《.Net中的设计模式》系列第二篇。通过Web控件在.Net中的实现,来分析Composite模式。本文简单介绍了Composite模式的实现,并结合.Net的实例,提出了一种新的实现Composite模式的方式:复合方式。本文链接:《.Net中的设计模式——Composite模式》
阅读全文
摘要:虽然还是谈设计模式,但绝不是旧调重弹。除了介绍模式的基本概念及实现外,特别之处在于我从.Net Framework中找一些现成的case,以这些实际的例子,结合模式谈谈实践,从中也可以学到微软设计师们的设计技巧。本文链接:《.Net中的设计模式——Factory Method模式》《.Net中的设计模式》是一个系列,文中关于.Net Framework的实现代码,一部分是从http://www.1...
阅读全文
摘要:Strategy模式是对算法的封装。即使是一个计算行为,如果其实现有其多样性,为达到易扩展的目的,我们也有必要将其抽象出来,以接口的形式来定义。由于充分利用了面向对象的多态性,在调用该行为时,其具体的实现是在运行期决定的。以税收计算为例,假定税收策略分为个人所得税,和企业所得税。根据策略模式,将税收策略抽象为接口ITaxStrategy: public interface ITaxStrategy...
阅读全文