参考:
http://www.cnblogs.com/bigshuai/articles/2883256.html
http://www.cnblogs.com/tornadomeet/archive/2012/04/12/2443993.html