2006年8月17日

Singleton单件(创建型模式)

摘要: 单件模式要求一个类有且仅有一个实例. Singleon类: 1using System; 2 3namespace Singleton 4{ 5 /**//// 6 /// Singleton 的摘要说明。 7 /// 8 public class Singleton 9 {10 11 private static Singleto... 阅读全文

posted @ 2006-08-17 17:17 walker 阅读(135) 评论(0) 推荐(0) 编辑

Bridge桥接(结构型模式)

摘要: 动机: 当一个对象有了两个变化的维度,如何应对这种“多维度的变化”?如何利用面向对象技术来使得这个对象类型可以轻松沿着多个方向变化,而不引入额外的复杂度?意图: 将抽象部分与实现部分分离,使它们都可以独立地变化。 出自:《设计模式》GoF Bridge模式的几个要点: 1、Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象(Tank的型号)和实现(不现的平... 阅读全文

posted @ 2006-08-17 16:40 walker 阅读(212) 评论(0) 推荐(0) 编辑

Adapter适配器(结构型模式)

摘要: 动机: 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?意图: 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 出自:《设计模式》GoFAd... 阅读全文

posted @ 2006-08-17 15:10 walker 阅读(170) 评论(0) 推荐(0) 编辑

Prototype原型(创建型模式)

摘要: 动机: 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求改变而改变?意图: 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 出自:《设计模式》GoF... 阅读全文

posted @ 2006-08-17 14:44 walker 阅读(157) 评论(0) 推荐(0) 编辑

Builder生成器(创建型模式)

摘要: 动机: 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的了对象用一定的算法构成:由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却欲相对稳定。 如何应对这种变化?如何提供一种“封闭机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?意图: 将一个复杂对象的构建与其表示相分离,使得同样的... 阅读全文

posted @ 2006-08-17 14:17 walker 阅读(176) 评论(0) 推荐(0) 编辑

AbstractFactory抽象工厂(创建型模式)

摘要: 动机: 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客房程序和这种“多系列具体对象创建工作”的支耦合?意图: 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 出自:《设计模式》GoFAbstract... 阅读全文

posted @ 2006-08-17 13:19 walker 阅读(231) 评论(0) 推荐(0) 编辑

2006年8月16日

FactoryMethod工厂方法(创建型模式)

摘要: 最近看了李建宗老师的面向对象的设计模式的课程。我把里面的代码记录了下来以供大家参考。其中有的地方我整理了一下,可能有的地方和课程里的不一样。动机: 在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。 如何应对这种变化?如何提供一种“封闭机制”来隔离出“这个易变对象”的变化,从而保持系统中“其他依赖该对象”不随着需求改变而... 阅读全文

posted @ 2006-08-16 17:43 walker 阅读(218) 评论(0) 推荐(0) 编辑

2006年3月6日

一个C#睡前故事

摘要: 英文原版地址:英文原版地址:http://www.sellsbrothers.com/writin...t=delegates.htm.NET委托:一个C#睡前故事英文版原作者:Chris Sells(www.sellsbrothers.com)翻译:袁晓辉(www.farproc.com http://blog.csdn.net/uoyevoli)紧耦合从前,在南方一块奇异的土地上,有个工人名叫... 阅读全文

posted @ 2006-03-06 10:57 walker 阅读(437) 评论(0) 推荐(0) 编辑

2006年2月21日

C#中得到网卡号

摘要: using System.Management; //get the MAC address ManagementClass mc=new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc=mc.GetInstances(); string[] MacAddress=new st... 阅读全文

posted @ 2006-02-21 14:44 walker 阅读(305) 评论(0) 推荐(0) 编辑

C#怎样打开关闭CDROM?

摘要: using System;using System.Text;using System.Runtime.InteropServices; class CloseCD{ [DllImport( "winmm.dll", EntryPoint="mciSendStringA", CharSet=CharSet.Ansi )] protected static extern int mciSend... 阅读全文

posted @ 2006-02-21 12:56 walker 阅读(266) 评论(0) 推荐(0) 编辑

导航