Ray Lei 发布的文章

C#实现单例模式的几种方法

  • 介绍
  • 非线程安全的单例版本
  • 简单线程安全版本(通过lock实现)
  • Double-checked locking
  • 不完全懒汉式,但不加锁的线程安全
  • 完全懒汉实例化
  • 使用.NET 4 Lazy type 特性
  • 性能 vs 懒汉式
  • Exceptions
  • 总结

介绍

单例模式是软件工程学中最富盛名的设计模式之一。从本质上看,单例模式只允许被其自身实例化一次,且向外部提供了一个访问该实例的接口。通常来说,单例对象进行实例化时一般不带参数,因为如果不同的实例化请求传递的参数不同的话会导致问题的产生。(若多个请求都是传递的同样的参数的话,工厂模式更应该被考虑)

- 阅读剩余部分 -

正则表达式匹配手机号

经常需要用到这一判断,一直没有找到一个精确的正则表达式,这里用于记录下。

正则字符串如下:

^[1]{1,1}[3,4,5,7,8]{1,1}\d{9}$

其中: 

^           从字符开头匹配
[1]{1,1}    字符必须以1开头,{1,1}表示只能匹配一个
[3,4,5,7,8] 匹配其中的一个数字
\d          匹配数字
{9}         重复9次
$           从后面开始匹配

- 阅读剩余部分 -

SQL Server Cursor 游标简介

游标用于遍历一个结果集合,在存储过程、自定义函数中要遍历某个中间结果集时非常有效。

语法

游标具体创建的语法这里不作具体说明,后面的例子中可见。但对游标使用中几个关键字进行简单说明。

  • DECLARE: 用于定义一个T-SQL的游标;
  • OPEN: 打开已定义的游标;
  • FETCH: 从游标指向的结果集中返回一行;
  • CLOSE: 关闭游标;
  • DEALLOCATE:释放游标资源;

基本上,游标的使用中,上述5个关键字都需要用到。

- 阅读剩余部分 -

Asp.Net IHttpHandler介绍

ASP.NET响应Http请求时常用的两个处理接口是IHttpHandler和IHttpModule。

一般的,IHttpHandler用来处理一类特定的请求,比如对每个*.asp, *.aspx文件的分别处理。而IHttpModule通常用来处理所以请求共同需要的操作,比如对所以请求页面进行某些相同的检查功能。

我们先来看一下IIS服务器在相应Http请求时的处理步骤。
ASP.NET中有管线(Pipeline)这个概念,意指每个ASP.NET请求在IIS中会有一系列相应操作串联起来形成的一条类似线一样的序列。

- 阅读剩余部分 -

SQL Server存储过程简介

存储过程是由一个或多个T-SQL语句组成的语句组,它可以接受输入参数和输出参数且能向调用程序返回多个值;可以调用其他过程;可以向调用程序返回结果状态值以标记执行成功或失败;

使用存储过程的好处

  1. 减少服务器/客户端网络流量:过程多条命令进行单个批处理执行,只一次网络传输;
  2. 更强的安全性:防止SQL注入,也可以进行加密处理;
  3. 代码重复使用:可封装重复的数据库操作;
  4. 更易维护:更新存储过程脚本可不更新调用的服务端程序;
  5. 更好的性能:首次执行时会生成执行计划,供后续重复使用;

- 阅读剩余部分 -