2017年6月

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

  • 介绍
  • 非线程安全的单例版本
  • 简单线程安全版本(通过lock实现)
  • Double-checked locking
  • 不完全懒汉式,但不加锁的线程安全
  • 完全懒汉实例化
  • 使用.NET 4 Lazy<T> 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次
$            从后面开始匹配

- 阅读剩余部分 -