摘要: 一、Action<T>和Func<T>委托 除了上篇描述的为每个参数和返回类型定义一个新委托类型之外,还可以使用Action<T>和Func<T>委托。通过T的标示,我们可以知道这是两个泛型委托。 二、Action<T> 其中Action<T>委托表示引用一个void返回类型的方法。这个委托存在不同阅读全文
posted @ 2017-05-30 22:38 Rich.W 阅读(5) 评论(0) 编辑
摘要: 一、委托 把方法作为参数传给其他方法; 二、声明委托 在C#中使用一个类时,分两个阶段。首先,需要去定义一个类,然后实例化类的一个对象(只需要静态方法除外)。 使用委托也需要经过这2个步骤,首先必须定义要使用的委托,对于委托,定义它就是告诉编译器这种类型的委托表示哪种类型的方法。然后,必须创建该委托阅读全文
posted @ 2017-05-30 22:07 Rich.W 阅读(10) 评论(0) 编辑
摘要: 一、概述 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、模式中的角色 Abstraction:定义抽象类的接口;维护一个指向Implementor类型对象的指针; RefinedAbstraction:扩充由Abstraction定义的接口; Implementor:定义具体行为,具体阅读全文
posted @ 2017-05-21 22:00 Rich.W 阅读(12) 评论(0) 编辑
摘要: 一、概述 将一个类的接口转换为客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作; 二、模式中的角色 Target:定义客户端使用的与特定领域相关的接口; Clinet:与符合Target接口的对象协同; Adpatee:定义一个已经存在的接口,这个接阅读全文
posted @ 2017-05-17 23:43 Rich.W 阅读(17) 评论(0) 编辑
摘要: 一、跨浏览器的事件对象 二、右键菜单demo阅读全文
posted @ 2017-05-13 15:13 Rich.W 阅读(2) 评论(0) 编辑
摘要: 一、序 定义函数的方式有两种:一种是函数声明,另一种就是函数表达式; 1.1 函数声明 关于函数声明,它有一个重要特征就是函数声明提升,意思就是在执行代码之前会先读取函数声明。这就意味着可以把函数放在调用它的语句后面。如下所示: 1.2 函数表达式 这种形式看起来好像是常规的变量赋值语句,即创建一个阅读全文
posted @ 2017-05-04 23:39 Rich.W 阅读(78) 评论(0) 编辑
摘要: 一、总结 创建型模式抽象了实例化的过程;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。 在这些模式中有两个不断出现的主旋律。第一,它们都将关于该系统使用哪些具体的类的信息封装起来。第二,它们隐藏了这些类阅读全文
posted @ 2017-04-23 16:43 Rich.W 阅读(20) 评论(0) 编辑
摘要: 一、概述 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象; 二、模式中的角色 Prototype:声明一个克隆自身的接口; ConcretePrototype:实现一个克隆自身的操作; 三、UML类图 四、代码实现 五、实际应用 在.NET里,那个原型抽象类Prototype是用不着阅读全文
posted @ 2017-04-23 16:08 Rich.W 阅读(95) 评论(0) 编辑
摘要: 一、序 面向对象有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。ECMA-262把对象定义为“无序属性的集合,其属性可以包含基本值、对象或者函数”。 使用Object来创建对象,如下代码所示: 使用对象字面量来创建对象,如下代码所示: 通过上面两种方式,虽然我创阅读全文
posted @ 2017-04-11 00:36 Rich.W 阅读(289) 评论(2) 编辑
摘要: 一、概述 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 二、模式中的角色 Singleton:定义一个Instance操作,允许客户访问它的唯一实例,Instance是一个类操作;可能负责创建它自己的唯一实例; 三、UML类图 四、代码实现 4.1 双重锁定 4.2 静态初始化 五、应用场阅读全文
posted @ 2017-04-04 23:47 Rich.W 阅读(27) 评论(0) 编辑