01 2008 档案
摘要:1:概述建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。2:使用场景 对象性质的建造 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。 ...
阅读全文
摘要:A:Creational Pattern:抽象了对象的实例化过程 1:Abstract Factory Pattern 提供一个创建一系列相关或相互依赖对象的接口,而无需...
阅读全文
摘要:1:概述 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。2:C#对原型模式的支持 在C#里面,我们可以很容易的通过Clone()方法实现原型模式。任何类,只要想支持克隆,必须实现C#中的ICloneable接口。ICloneable接口中有一Clone方法,可以在类中复写实现自定义的克隆方法。克隆的实现方法有...
阅读全文
摘要:1:使用场景 A: 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。 B:这个系统有多于一个的产品族,而系统只消费其中某一产品族。 C:同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。 D:系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。2:构成 ...
阅读全文
摘要:1:概述 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口...
阅读全文
摘要:很多人对Volatile都不太了解,其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上来讲每次使用a的时候都应该从a的地址来读取变量值,但是这存在一个效率问题,就是每次使用a都要去内存中取变量值,然后再通过系统总线传到CPU处理,这样开销...
阅读全文
摘要:1:缓存依赖的类别 文件,数据表,数据行,一段时间,控件,查询字符串等2:缓存项之间的依赖 protected void Button3_Click(object sender, EventArgs e){ // create item A and item B string itemA = "ItemA"; string itemB = "ItemB"; Cac...
阅读全文
摘要:1. SqlServer2000数据库字典--表结构.sql SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END AS 表说明, ...
阅读全文
摘要:特点: 1:单例类只能有一个实例。 2:单例类必须自己创建自己的唯一实例。 3:单例类必须给所有其它对象提供这一实例。应用: 每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。 一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地方分配下一个主键编号。否则会出现主键重复。代码实现...
阅读全文
摘要:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.个人理解:策略模式定义了一系列的算法,并将每...
阅读全文
摘要:.Net编程中最经常用的元素,事件必然是其中之一。无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。“protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都是带了“object sender, EventArgs e”这...
阅读全文
摘要:(观察者封装了观察者和观察方法这两个变化点,重要的还是观察方法。)个人理解针对软件构建过程中,某些对象存在的“通知依赖关系”(如果目标对象的状态发生改变将通知所有的依赖对象)。我们可以利用抽象类或者接口在消息发出对象中建立通知耦合关系,也可以通过事件与委托在被通知对象中建立通知这种藕和关系。效果及实现要点1.使用面向对象的抽象,Observer模式使得我们可以独立地改变目标...
阅读全文
摘要:设计原则: (1)针对接口编程,而不是针对实现编程 (2)优先使用对象组合,而少用继承 (3)封装变化点 具体的设计原则: (1)单一职责原则 (2)开放封闭原则 (3)Liskov替换原则 (4)依赖倒置原则 (5)接口隔离原则 比模式更重要的原则(GRASP职责分配原则)1:信息专家[方法分配](如果某个类具有某个职责需要的所有信息那么该方法应分配给该类)2:创造者[对象创建](如果A是B的聚...
阅读全文
摘要:摘要本文介绍了在.NET框架下应用Web设计模式改进WebForm程序设计的一些基本方法及要点。关键字设计模式,ASP.NET,WebForm,MVC,Page Controller,Front Controller,Page Cache目录引言经典的WebForm架构设计模式MVC模式下的WebFormPage Controller模式下的WebFormFront Controller模式下...
阅读全文
摘要:1:Params 1 public static void UseParams(params object[] list) 2 { 3 for (int i = 0; i < list.Length; i++) 4 { 5 Console.WriteLine(list[i]); 6 } 7 } 8 9 static void Main...
阅读全文