2010年11月28日
摘要: 参考MSDN文章:如何:使用 COM Interop 创建 Excel 电子表格(C# 编程指南)如何: 使用 Visual C#.net Excel 的句柄的事件代码: 阅读全文
posted @ 2010-11-28 21:16 Melou 阅读(1023) 评论(0) 推荐(0) 编辑
  2010年10月1日
摘要: 在使用 BeginInvoke 和 EndInvoke 进行异步调用时,调用 BeginInvoke 之后,可以执行下列操作来结束异步调用: · 进行某些操作,然后调用 EndInvoke 一直阻止到调用完成。 · 使用 IAsyncResult..::.AsyncWaitHandle 属性获取 WaitHandle,使用它的 WaitOne 方法一直阻止执行直到发出 WaitHandle 信... 阅读全文
posted @ 2010-10-01 08:48 Melou 阅读(4314) 评论(0) 推荐(0) 编辑
  2010年7月18日
摘要: 同步化操作:由前后紧接的组件或函数调用组成。一个同步化调用会阻塞整个进程直到这一个操作完成。异步化操作:不会阻塞启动操作的调用线程。调用程序必须通过轮流检测、软件中的中断信号或只是明确地等待完成信号来发现调用的完成。.NET 为异步操作提供两种设计模式:· 使用 IAsyncResult 对象的异步操作。 · 使用事件的异步操作。 .NET的许多方面都支持异步编程功能,... 阅读全文
posted @ 2010-07-18 19:27 Melou 阅读(2297) 评论(4) 推荐(1) 编辑
  2010年7月8日
摘要: XP极限编程有4大价值观,5个原则,13个最佳实践,其中一个最佳实践——每周工作40小时是最让开发人员开心的,管理者反对的一个最佳实践。  加班、再加班早已成为开发人员的家常便饭,也是管理者最常使用的一种策略,加班似乎成为了IT业内的潜规则,即使企业没有明说,也会成为默认规定,不加班就不能称之为IT,但是xp方法论认为,加班最终会扼杀团队的积极性,最终导致项目失败,这也充分... 阅读全文
posted @ 2010-07-08 20:14 Melou 阅读(669) 评论(0) 推荐(0) 编辑
  2010年6月19日
摘要: 生成器模式有点类似于抽象工厂模式,两者都返回由许多方法和对象组成的类。它们之间的主要差别是,抽象工厂返回的是一系列相关的类,而生成器是根据提供给它的数据一步一步地构建一个复杂的对象。 动机:在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相... 阅读全文
posted @ 2010-06-19 19:20 Melou 阅读(422) 评论(0) 推荐(0) 编辑
  2010年6月17日
摘要: 观察者模式的效果 Observer促进了目标的抽象耦合,目标不知道任何一个观察者的详细内容。但这也具有潜在的缺点:当目标中的数据发生了一系列的递增变化时,要持续或反复地更新观察者。如果更新的代价很高,就有必要引进某种管理更改的策略,这样就不会多次或频繁地通知观察者。 当一个客户(观察者)对底层数据做了修改,你要决定由哪一个对象去触发送给其他观察者的更新通知。如果是由目标在它被更改后去通知所有的观... 阅读全文
posted @ 2010-06-17 18:30 Melou 阅读(618) 评论(1) 推荐(0) 编辑
摘要: 请求的发送者和接受者可能存在如下关系,某些对象的请求的接受者可能多种多样,变化无常,职责链(Chain Of Responsibility)模式允许多个类处理同一个请求,而不需要了解彼此的功能。它在类之间提供了一种松散的耦合:类之间唯一的联系就是相互传递的请求。请求在类之间传递,直到其中一个类处理它为止。 动机:在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如... 阅读全文
posted @ 2010-06-17 13:07 Melou 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 所有的创建型模式都涉及到创建对象实例的方式,因为程序不应该依赖于对象如何创建和安排,当然,使用new 是C#创建一个对象实例最简单的方法。然而,很多情况下,创建对象的本意随程序的需求不同而不同,将创建过程抽象成一个专门的“创造器”类,会使程序更灵活,更通用。 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 动机:在软件系统中,经常面临着&ldquo... 阅读全文
posted @ 2010-06-17 12:56 Melou 阅读(430) 评论(1) 推荐(0) 编辑
  2010年6月10日
摘要: 1. 意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 2. 动机在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。 如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题? 如果一个程序需要一种特定的服... 阅读全文
posted @ 2010-06-10 21:19 Melou 阅读(505) 评论(0) 推荐(0) 编辑
  2010年6月2日
摘要: 在程序设计过程中,有很多情况需要保证一个类只有一个实例.这时候就需要使用单件模式了。 保证一个类仅有一个实例,并提供一个该实例的全局访问点。——《设计模式》GoF 结构(Struct) 1 使用静态方法创建单件 让一个类只有一个实例,最容易的方法是在类中嵌入一个静态变量,并在第一个类实例中设置该变量 阅读全文
posted @ 2010-06-02 21:06 Melou 阅读(523) 评论(4) 推荐(0) 编辑