摘要: 2xx:成功200:OK,请求成功201:OK,新的资源建立(post命令)202:请求被接受,但处理未完成204:OK,但没有内容返回------------------------------------------------------------------------3xx:重定向:需要用户代理执行更多的动作301:Moved Permanently永久转移(所请求的资源已被指派为新的固定URL)302:Found 暂时转移(所请求的资源临时位于另外的URL)304:文档没有修改(条件GET)307:Temporary Redirect(临时重定向)---------------- 阅读全文
posted @ 2011-03-24 23:44 山之松 阅读(2073) 评论(0) 推荐(0) 编辑
摘要: RegExp对象的方法:test,返回一个bool值,它指出在被查找的字符串中是否存在模式。如果存在返回true,否则返回false.exec, 用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。compile, 把正则表达式编译为内部格式,从而执行更快。RegExp对象的属性:source, 返回正则表达式模式的文本的复本,只读。lastIndex, 返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。$1...$9, 返回九个模式匹配期间查找的字符串,只读。input ($_),返回执行规范表述查找的字符串,只读。最好是这样使用RegExp['$_' 阅读全文
posted @ 2011-03-24 23:32 山之松 阅读(118) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace NullObjectPattern{ public interface INullable { bool IsNull { get; } } public interface IUser : INullable { void Login(); void GetInfo(); } public class User : IUser { public void Login() { Console.WriteLine( 阅读全文
posted @ 2011-03-24 22:31 山之松 阅读(369) 评论(0) 推荐(0) 编辑
摘要: ①const修饰的常量只能在初始化时被赋值,而readonly 域可以在初始化时被赋值,也可以在构造函数内赋值(但不能在其它方法内改变它)。②const修饰的常量的值必须在编译时确定,而readonly 域的值不必在编译时确定。const修饰的值的数据类型也有限制,它只能为下列类型之一(或能够转换为下列类型的):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string, enum类型, 或引用类型。③const修饰的常量是static 类型,不能通过类的实例进行访 阅读全文
posted @ 2011-03-24 22:26 山之松 阅读(126) 评论(0) 推荐(0) 编辑
摘要: (1)结构是值类型(存储在“栈”中),而类是引用类型(存储在“堆”中)。因而对一个结构变量的操作不会影响到另一个结构变量(2)结构也可以不用new来实例化,但类则必须采用new来实例化。(3)结构不存在像类那样的显示的继承关系,也不能派生出其他类型(因为结构类型隐含地被定义为sealed),但所有的结构类型都隐含地继承于System.ValueType(它也隐含地继承于System.Object类);结构可以实现接口(其编程规则类同于类)。(4)结构成员的访问属性不能为protected或是protected internal。同时结构的成员也不能为abstract或virtual。(5)结构 阅读全文
posted @ 2011-03-24 22:24 山之松 阅读(130) 评论(0) 推荐(0) 编辑
摘要: TemplateMethod封装算法结构,支持算法子步骤变化Strategy注重封装算法,支持算法的变化State注重封装与状态相关的行为,支持状态的变化Memento注重封装对象状态变化,支持状态保存/恢复Mediator注重封装对象间的交互,支持对象交互的变化ChainOfReponsibility注重封装对象责任,支持责任的变化Command注重将请求封装为对象,支持请求的变化Iterator注重封装集合对象内部结构,支持集合的变化Interpreter注重封装特定领域变化,支持领域问题的频繁变化Observer注重封装对象通知,支持通信对象的变化Visitor注重封装对象操作变化,支持 阅读全文
posted @ 2011-03-24 22:18 山之松 阅读(110) 评论(0) 推荐(0) 编辑
摘要: Facade注重简化接口,简化组件系统与外部客户程序的依赖关系。Adapter 注重转化接口,将不吻合的接口适配对接。Bridge 注重分离接口与其实现,支持多维度变化。Decorator 注重稳定接口,在此前提下为对象扩展功能。FlyWeight注重保留接口,在内部使用共享技术对对象存储进行优化。Proxy注重假借接口,增加间接层来实现灵活控制。Composite注重统一接口,将“一对多”的关系转化为“一对一”的关系。 阅读全文
posted @ 2011-03-24 21:56 山之松 阅读(124) 评论(0) 推荐(0) 编辑
摘要: AbstractFactory和Builder都是创建一个组合对象,让组合对象可以有不同的表示,区别在于创建组合对象过程的复杂度。当只是简单的组合时,用AbstractFactory;当是一个复杂的组合时,用Builder;总结成三个字:复杂度。FactoryMethod和Prototype都是创建个别对象,并延迟到子类。FactoryMethod 用于个别对象只使用少数几次时。Prototype用于个别对象使用多次时。总结成三个字:重用度。AbstractFactory用于"系列对象"的创建。构建过程简单,表示不断变化。Builder用于"部分对象"的 阅读全文
posted @ 2011-03-24 21:51 山之松 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 三大基本面向对象的原则:1.封装变化。2.多用组合,少用继承。3.针对接口编程,不针对实现编程。单一职责原则(SRP):一个类应该仅有一个引起它变化的原因。开放关闭原则(OCP):类模块应该是可扩展的,但是不可修改(对扩展开放,对修改关闭)。Liskov替换原则(LSP): 子类必须能够替换它们的基类。依赖倒置原则(DIP):依赖抽象,不要依赖具体类。高层模块不应该依赖于低层模块, 二者都应该依赖于抽象。抽象不应该依赖于实现细节,实现细节应该依赖于抽象。接口隔离原则(ISP): 不应该强迫客户程序依赖于它们不用的方法。 阅读全文
posted @ 2011-03-24 21:36 山之松 阅读(112) 评论(0) 推荐(0) 编辑